Bunとは?Remixと一緒に動かしてみた

Bunとは

JavaScriptのランタイム。Node.jsと同じ立ち位置のもので、Node.jsと代替できるようにデザインされている。
ただ、バンドラー・テストランナー・パッケージマネージャーとしてのツールを備えている。

以下、特徴で気になったことをメモ。

  • 高速な実行速度は、JavaScriptCoreエンジンとZigがポイントとなっている
  • TypeScriptのネイティブサポート
  • JSXのネイティブサポート
  • ネイティブでWatch modeあり
  • npm互換のパッケージマネージャー
  • Jestに互換性のあるテスト構文

Remixと一緒に動かしてみる

Remixインストール

※bunはすでにインストール済みです。

bun create remix

インストール結果を見てみる

npmyarnと比較すると、

  • 同様にnode_modules内にインストールされたパッケージが入ってます
  • lockファイルはbunのもの。バイナリファイルなのでvscodeでは開けませんでした

サーバー起動する

bun run dev

うむ。通常通り起動できました。

テストはどうだろう

bunはテストランナーでもあるとのことで、テストを書いてみようと思いました。
が、検証途中でJest, Vitestと変わらなさそうと思ったので中断しました🙏

Testing Library系(React Testing Library、DOM Testing Library、HappyDOM)にも互換性があるので、テストコードはほぼほぼ同じになる見込みです。

感想

「bunにしたら何か大きな違いがあるかも!」と思って動かしてみましたが、正直なところ既存技術との互換性が高いのもあって、あまり違いは感じられませんでした。

ただ、処理速度は速いに越したことはないし、TSのネイティブサポート、テストランナーなどのツールをデフォルトで提供してくれることは、設定の手間も減るので嬉しいことだと思います!

bun導入して良さそうなプロジェクトあったら導入して色々比較してみたいな。

タイトルとURLをコピーしました