0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

bunのメリット!nodejsはもういらない!

Last updated at Posted at 2025-01-22

Bunというパッケージマネージャー兼NodeJS互換JavaScriptランタイムが便利すぎます。メリットを紹介します。

速い

何をするにしても速いです。
Bunのサーバー・WebSocketサーバー・bun.sqlite等に、JavaScriptの実行自体も速く、パッケージマネージャとしてもインストールにグローバルキャッシュ等があってとても速いです。

打ちやすい

bunのキーボードの位置がとてもいいです。位置的にはnpmを左にずらした感じです。真ん中によってると打ちやすいですよね!
パッケージマネージャは大量にコマンドを打つでしょうからこれは大きいメリットではないでしょうか。

直接TypeScriptが動く

bun script.tsとかですぐTypeScriptコードを実行できます。しかも型エラーも出るらしい。
JSXも対応らしいです。

bunのnpmパッケージがある

bunのバイナリがnpmパッケージにあるので、インストールしておけばbunを使ってない環境からでも互換性を保って実行できます。

もちろんpackage.jsonやnodejsのAPIの互換性有

まあ当たり前というか他も同じようです。
しかしbun.lockbというバージョン固定ファイルはバイナリで密度が高いです!
なのでハードディスクの節約ですね!(gitで追跡しずらい)

bun.lockというJSON形式になってgitで追跡しやすくなりました!

esモジュールとCommonJSどちらも使用可能

ごっちゃになって発狂することあるのでたすかります!

API充実

ざっとこんなものが。

  • ホットリロード
  • バンドラ(esbuild互換?)
  • Web標準基準のAPI(Request等)
  • HTTPサーバー
  • テストツール(Jest互換)
  • PostgresSQL・Sqliteドライバ
  • WebSocket(HTTPサーバーと併用)
  • 実行ファイルにコンパイル

bunのバンドラはiifeのグローバル出力がまだできてないので(n-m-;)ですが
もうそういうテンプレ全部bunのAPIで済むじゃん!!

デメリット

ちゃんと紹介します。

  • バンドラでIIFE用にビルドするときグローバルへの代入をするのにラッパー(?)が必要
  • pnpmみたいな依存関係の依存関係の問題が解決されてないっぽい
  • enterキーでpublishの認証画面が出てこなかったりする
  • replが上手く動かない
  • nodejsがインストールされてない場合、npm-run-allが上手く動作しない
  • 発展途上でクラッシュしやすい(ソース:自分が投稿したissue)、ならバグを見つけて質を上げよう!
    現在は体感ではHTMLのホットリロードが不安定です(いやその機能が新しすぎてそうだろ!ってなるぐらい)

結論

npm要らない!bun入れよう!

あくまで個人の意見です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?