根据官方说法,Bun 0.6.0 版本是迄今为止 Bun 最大的一个更新版本。
最新版本的 Bun 现在有一个内置的 JavaScript 和 TypeScript 捆绑器和简化器,可以用它来捆绑前端应用程序或将你的代码捆绑成一个独立的可执行文件。
Bun 0.6.0 也一直在忙着提高性能和修复 bug:writeFile()在 Linux 上的速度提高了 20%、对Node.js 兼容性和 Web API 兼容性进行了大量的 bug 修复、支持 TypeScript 5.0 语法,并对bun install进行了各种修复。
新的 JavaScript bundler & minifier
这个版本的重点是 Bun 的新 JavaScript Bundler(捆绑器),但捆绑器只是一个更大项目的开始。在接下来的几个月里,Bun 将发布Bun.App—— 一个 "超级 API",将 Bun 的 native-speed 捆绑器、HTTP 服务器和文件系统路由缝合成一个整体。
可以使用bun build CLI 命令或新的Bun.build() JavaScript API 来使用。
JavaScript
Bun.build({
entrypoints: ["./src/index.tsx"],
outdir: "./build",
minify: true,
// ...
});
CLI
bun build ./src/index.tsx --outdir ./build --minify
独立的可执行文件
现在你可以用bun build来创建独立的可执行文件。
bun build --compile ./foo.ts
这让你可以将你的应用程序作为一个可执行文件发布,而不需要用户安装 Bun。
你也可以将其缩小,以提高大型应用程序的启动性能:
bun build --minify --compile ./three.ts
[32ms] minify -123 KB (estimate)
[50ms] bundle 456 modules
[107ms] compile three
这是由 Bun 的新 JavaScript 捆绑器和简化器提供的。
import.meta.main
现在你可以使用import.meta.main来检查当前文件是否是启动 Bun 的入口点。这对 CLI 很有用,可以确定当前文件是否是启动应用程序的。
例如,如果你有一个名为index.ts的文件:
index.ts
console.log(import.meta.main);
然后你运行它:
$ bun ./index.ts
true
但如果你导入它:
import "./index.ts";
并运行它:
$ bun ./other.ts
false
对bun test的改进
bun test现在报告运行测试的时间
describe.skip已经实现
实现了expect().toBeEven()和expect().toBeOdd()
在 Linux 上实现更快的 fs.writeFile
fs.writeFile 在 Linux 上处理大文件的速度提高了 20%
转译器改进
这个版本还引入了许多对转译器的改进。以下是其中的一些亮点:解析器支持 TypeScript 5.0。解析器支持导入属性。一些 npm 包出现了 ReferenceError: Cannot access uninitialized variable 的错误,这是由于 Bun 的转译器中存在循环导入的错误。这一点已被修复。支持// @jsx、// @jsxImportSource和// @jsxFragment注释……更多详情可查看:https://bun.sh/blog/bun-v0.6.0原文地址:OSCHINA
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。