公式には、Bun 0.6.0 はこれまでのところ Bun の最大のアップデートです。
Bun の最新バージョンには、フロントエンド アプリケーションをバンドルしたり、コードを 1 つの実行可能ファイルにバンドルしたりするために使用できる、JavaScript および TypeScript バンドラーおよびリデューサーが組み込まれています。
Bun 0.6.0 では、パフォーマンスの向上とバグ修正にも取り組んでいます。LinuxwriteFile()
での 20% の高速化、Node.js 互換性と Web API 互換性に関する多数のバグ修正、TypeScript 5.0 構文のサポート、およびbun install
Made のさまざまな修正のサポートです。
新しい JavaScript バンドラーとミニファイアー
このリリースの焦点は Bun の新しい JavaScript Bundler (バンドラー) ですが、このバンドラーはさらに大規模なプロジェクトの始まりにすぎません。今後数か月にわたって、Bun は、Bun.App
Bun のネイティブ速度のバンドラー、HTTP サーバー、およびファイルシステム ルーターを 1 つのパッケージに統合する「スーパー API」をリリースする予定です。
bun build
CLI コマンドまたは新しいJavaScript APIを使用してBun.build()
使用できます。
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
現在のファイルが bun を開始するためのエントリ ポイントであるかどうかを確認できます。これは、CLI が現在のファイルがアプリケーションを開始したファイルかどうかを判断するのに役立ちます。
たとえば、index.ts
次のようなファイルがあるとします。
インデックス.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
Linux 上の大きなファイルの場合、fs.writeFile は 20% 高速です
トランスレータの改善
このリリースでは、トランスパイラに多くの改良も加えられています。以下にハイライトをいくつか示します。
- パーサーは TypeScript 5.0 をサポートします。
- パーサーは属性のインポートをサポートしています。
- 一部の npm パッケージには、Bun のトランスパイラの循環インポートのバグが原因でエラーが
ReferenceError: Cannot access uninitialized variable
発生します。これは修正されました。 - サポート
// @jsx
、// @jsxImportSource
注意// @jsxFragment
事項 - ……