Bun是一个令人惊叹的快速的JavaScript运行时、打包器、转译器和包管理器,集多种功能于一身。在过去的几个月里,Bun团队频繁发布更新,不断提升Bun的强大与稳定。Bun 0.7.3版本带来了哪些重要更新呢?让我们来看看。
测试覆盖率报告
Bun测试现在内置支持代码覆盖率报告。只需添加--coverage
参数,就可以在终端看到覆盖率报告。这对检查代码质量、发现潜在错误非常有帮助。未来版本还将提供更加详细的序列化报告。
bun test --coverage
正则表达式过滤测试
Bun测试新增了根据正则表达式过滤测试的功能。通过-t
参数可以运行匹配指定模式的测试,方便快速定位和执行特定测试用例。
bun test -t /foo/
Bun插件机制优化
推荐使用--preload
来加载Bun插件,确保插件在其他代码加载前启动。这可以避免潜在问题和冲突。当然,也可以在bunfig.toml
中配置preload。
// my markdown plugin
import { plugin, file } from "bun";
plugin({
name: "Markdown",
async setup(builder) {
builder.onLoad({ filter: /.(md)$/ }, async ({ path }) => {
console.log(`[markdown-loader] ${path}`);
const contents = await file(path).text();
const slug = path.split("/").slice(-1)[0].slice(0, -3);
return {
exports: {
slug,
contents,
},
loader: "object",
};
});
},
});
修复多处bug与崩溃
- 修复了
bun:sqlite
在列返回超过64个字符字符串时崩溃的问题。 - 修复了Node.js异步
fs
函数中的线程安全问题,避免传入线程本地字符串导致崩溃。 - 修复了
Buffer.copy
的bug。 - 修复了
bun init
路径问题。 - 修复了
workspace:*
依赖查找失败的bug。
增强Node.js兼容性
node:dns
模块新增dns.getServers()
。node:module
模块新增Module.wrap()
。- 多处Web API变为可写,增强与Angular兼容性。
Bun 0.7.3是一个值得期待的重要更新,为JavaScript开发带来了更高效更稳定的运行时。如果你还未尝试Bun,现在就是最佳时机!