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?

npm(Node.js)、Bun、Denoの比較

Posted at

基本的な特徴比較

機能 Node.js Deno Bun
モジュールシステム CommonJS, ESM ESM, npmサポート CommonJS, ESM
TypeScript/JSX 外部ツール要 組み込み 組み込み
セキュリティ 手動設定 デフォルトで厳格 手動設定
パッケージ管理 npm URLベース/npm npm
開発ツール 外部ツール要 組み込み 組み込み
OSサポート macOS/Linux/Win macOS/Linux/Win macOS/Linux

技術的な実装の違い

このダイアグラムは各ランタイムの技術スタックを示しています:

  • 赤色のボックスはJavaScriptエンジン(実行環境)
  • 緑色のボックスはランタイム本体
  • 青色のボックスは実装言語

特に、注目すべき点として、JavaScriptエンジンが異なります:

  • Node.jsとDenoはChromeで使用されているV8を採用
  • BunはSafariで使用されているJavaScriptCoreを採用し、より高速な実行を実現しています

各ランタイムの具体的な操作方法

Node.js(npm)

# プロジェクト初期化
npm init -y

# パッケージインストール
npm install express

# スクリプト実行
node app.js

Deno

# TypeScriptファイルの実行
deno run --allow-net app.ts

# パーミッション付き実行
deno run --allow-read="./file.txt" --allow-write app.ts

# npmパッケージの使用
import express from "npm:express@4";

Bun

# インストール
curl https://bun.sh/install | sh

# プロジェクト初期化
bun init

# パッケージインストール
bun add react react-dom

# 開発サーバー起動
bun dev

開発ツールの比較

機能 Node.js Deno Bun
フォーマッター 外部ツール要 deno fmt 組み込み
リント 外部ツール要 deno lint 組み込み
テスト Jest等 deno test 組み込み
ビルド Webpack等 組み込み 組み込み

セキュリティ機能

Denoは特にセキュリティに重点を置いています:

# ファイル読み込み許可
deno run --allow-read app.ts

# ネットワークアクセス許可
deno run --allow-net app.ts

# 環境変数アクセス許可
deno run --allow-env app.ts

パフォーマンス比較

Bunは高速な実行を特徴としています:

  • JavaScriptCoreを使用した最適化された実行環境
  • npmパッケージの高速インストール
  • ビルドツールの組み込みによる高速な開発サイクル 0:19

特徴

  • Node.js(npm):安定したエコシステムと広範な互換性
  • Deno:セキュリティ重視とモダンな機能
  • 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?