npm、npx、yarnを簡潔に理解【2026年版:pnpm・Bunも添えて】
はじめに
JavaScript/TypeScriptの開発をしていると、npm install と yarn add と npx create-* が混在して「結局どれを使えばいい?」と迷いがちです。この記事は、1年前に書いた入門記事を 2026年時点の状況に合わせて簡潔にアップデート したものです。
2026年現在の勢力図
- npm ── Node.js同梱の標準。迷ったらこれでOK
- npx ── npmに同梱されたパッケージ実行ツール
- yarn ── かつての高速代替。Classic (v1) と Berry (v2+) に分岐
- pnpm ── ディスク効率と速度のバランスで現在の実質的な主流
- Bun ── Zig製の爆速オールインワン。新規プロジェクトで注目
1. 全体像を図で押さえる
まず3ツール(+最近の2つ)の関係を整理します。
[パッケージ管理]
├─ npm ← Node.jsに同梱(標準)
├─ yarn ← npm代替、高速志向
├─ pnpm ← ディスク効率重視
└─ bun ← ランタイム統合、超高速
[パッケージ実行]
└─ npx ← インストールせず一時実行(npmに同梱)
よくある誤解
-
npxは「npmの新しい版」ではなく、npmに含まれる別コマンド -
yarnはnpmを置き換えるものだが、npx相当の機能はyarn dlxまたはyarn単体で実現
2. npm ── 迷ったらこれ
Node.jsに同梱されているので、Node.jsをインストールすれば即使えます。
# プロジェクト初期化
npm init -y
# 依存追加
npm install express # dependencies に追加
npm install -D vitest # devDependencies に追加
npm install -g typescript # グローバルインストール
# 削除・更新
npm uninstall express
npm update
# ロックファイル基準で再現性インストール(CI推奨)
npm ci
# スクリプト実行
npm run build
npm install と npm ci の違い
-
install── package.json基準で解決、lockfileを更新することがある -
ci── lockfile基準で厳密に再現、node_modulesを一旦削除してクリーンインストール -
CI環境では
npm ciを使う のが鉄則
3. npx ── インストールせず実行
npx は「npmレジストリのパッケージを一時的に実行する」ためのコマンドです。
# create-react-app を毎回最新で実行(グローバルインストール不要)
npx create-react-app my-app
# Vite で新規プロジェクト
npx create-vite@latest my-app
# 特定バージョンを指定
npx [email protected] 'console.log("hi")'
# ローカルにインストール済みのCLIを実行
npx tsc --version
npxの典型的な使い所
-
一度きりのコマンド:
create-*系は毎回最新版を使いたい → グローバルにインストールしない -
バージョン固定:
npx [email protected] ...で古い版も試せる -
ローカル実行の短縮:
./node_modules/.bin/tscの代わりにnpx tsc
4. yarn ── Classic と Berry は別物
Yarnは v1 (Classic) と v2+ (Berry) で設計思想が大きく違うため、混同しないよう注意が必要です。
# インストール
npm install -g yarn # Classic (v1)
corepack enable # Berry (v2+) 推奨の有効化方法
# プロジェクト初期化
yarn init -y
# 依存追加
yarn add express
yarn add -D vitest
yarn global add typescript # Classic のみ。Berry では非推奨
# 削除・更新
yarn remove express
yarn upgrade
# 一時実行(npx相当)
yarn dlx create-react-app my-app # Berry
Yarn Classic (v1) vs Yarn Berry (v2+)
| Classic (v1) | Berry (v2+) | |
|---|---|---|
| node_modules | あり | デフォルトなし(PnP) |
| lockfile | yarn.lock |
yarn.lock(形式は異なる) |
yarn global add |
使える | 非推奨(yarn dlxへ) |
| 互換性 | npmとほぼ同じ構造 | PnPモードは独自 |
| 現状 | メンテナンスモード | アクティブ開発 |
BerryのPnP (Plug'n'Play) は node_modules を作らず、.pnp.cjs で依存を解決する仕組み。高速だが一部ツールとの互換性に注意が必要。
2026年時点のyarnの立ち位置
Yarn Classicは事実上メンテナンスモード。新規プロジェクトなら素直に npm か pnpm、Bun を検討するほうが無難。
5. 【追加】pnpm ── 現在の実質的な主流
元記事にはなかったが、2026年現在は 新規プロジェクトの多くがpnpmを採用 しています。
# インストール
npm install -g pnpm
# または corepack enable で有効化
# 使い方はnpmとほぼ同じ
pnpm init
pnpm add express
pnpm add -D vitest
pnpm install
pnpm run build
pnpm dlx create-vite@latest my-app # npx相当
pnpmの何がいいのか
-
ディスク節約: 同じパッケージをグローバルストア(
~/.pnpm-store)に一度だけ保存し、プロジェクトからハードリンクで参照。100プロジェクトでlodashを使っても実体は1つ - 高速: ダウンロード不要でリンクを張るだけなのでインストールが速い
-
厳密な依存管理:
package.jsonに書いていないパッケージは使えない(npmの"phantom dependencies"問題を解決) -
モノレポ対応:
pnpm -rで全パッケージに対する一括操作が強力
6. 【追加】Bun ── Zig製の爆速オールインワン
2022年登場の新顔。パッケージマネージャ単体というよりJavaScriptランタイム + ビルダ + テストランナー + パッケージマネージャの統合ツールです。
# インストール
curl -fsSL https://bun.sh/install | bash
# 使い方
bun init
bun add express
bun install
bun run build
bun x create-vite@latest my-app # npx相当
bun test # テストランナー内蔵
Bunの現状(2026年時点)
- 速度は圧倒的: npmの5〜20倍速いベンチマーク報告も多数
- 互換性は向上中: 大半のnpmパッケージは動くが、ネイティブモジュールや一部のNode.js APIで課題が残る
- Windowsサポート: WSL2が最も安定。ネイティブWindowsも改善中
- 本番投入は慎重に: サイドプロジェクトや新規検証向け
7. 使い分けの実践ガイド
┌─ 会社の既存プロジェクト? ─ Yes → そのツールを踏襲
│
No
│
┌──────────┴──────────┐
│ │
新規個人開発 チーム新規
│ │
┌────┴────┐ ┌──────┴──────┐
│ │ │ │
速度最優先 安定 モノレポ 小〜中規模
│ │ │ │
Bun npm pnpm npm or pnpm
| こんなとき | おすすめ |
|---|---|
| とりあえず始めたい / 学習用 | npm |
| ちょっとしたコマンド実行 | npx |
| 大規模 / モノレポ / CI速度重視 | pnpm |
| 既存プロジェクトがyarn | yarn(引き続き使用) |
| 新規・速度で尖りたい | Bun |
| yarnで新規に始める理由 | 2026年時点では特になし |
8. コマンド対応表 ── 一覧で押さえる
| やりたいこと | npm | yarn | pnpm | bun |
|---|---|---|---|---|
| 初期化 | npm init |
yarn init |
pnpm init |
bun init |
| 依存追加 | npm i パッケージ |
yarn add パッケージ |
pnpm add パッケージ |
bun add パッケージ |
| dev依存追加 | npm i -D パッケージ |
yarn add -D パッケージ |
pnpm add -D パッケージ |
bun add -d パッケージ |
| グローバル | npm i -g パッケージ |
yarn global add パッケージ |
pnpm add -g パッケージ |
bun add -g パッケージ |
| 削除 | npm uninstall パッケージ |
yarn remove パッケージ |
pnpm remove パッケージ |
bun remove パッケージ |
| 全依存インストール | npm install |
yarn |
pnpm install |
bun install |
| CI向け厳密インストール | npm ci |
yarn install --frozen-lockfile |
pnpm install --frozen-lockfile |
bun install --frozen-lockfile |
| スクリプト実行 | npm run X |
yarn X |
pnpm X |
bun X |
| 一時実行 | npx X |
yarn dlx X |
pnpm dlx X |
bun x X |
まとめ
要点3行
- npmは迷ったらこれ。Node.js同梱で安定。
-
npxは一時実行。
create-*系はこれで毎回最新を使う。 - 2026年はpnpmが実質主流。yarnは既存プロジェクト以外で新規採用する積極的な理由が薄い。Bunは新規・検証向け。
元記事を書いた1年前は npm vs yarn の2択感覚でしたが、今は pnpm / Bun を含めた選択肢 として考えるほうが実態に合っています。とはいえ基本の npm と npx を押さえておけばまず困らないので、必要になったタイミングで他のツールを試せばOKです。
参考リンク
公式ドキュメント
- npm Docs
- Yarn Docs(Berry)
- pnpm Docs(日本語)
- Bun Docs
- Node.js corepack(yarn/pnpmのバージョン管理)
比較記事