8
7

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、npx、yarnを簡潔に理解【2026年版:pnpm・Bunも添えて】

8
Last updated at Posted at 2024-07-08

npm、npx、yarnを簡潔に理解【2026年版:pnpm・Bunも添えて】

はじめに

JavaScript/TypeScriptの開発をしていると、npm installyarn addnpx 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に含まれる別コマンド
  • yarnnpm を置き換えるものだが、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 installnpm 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行

  1. npmは迷ったらこれ。Node.js同梱で安定。
  2. npxは一時実行create-* 系はこれで毎回最新を使う。
  3. 2026年はpnpmが実質主流。yarnは既存プロジェクト以外で新規採用する積極的な理由が薄い。Bunは新規・検証向け。

元記事を書いた1年前は npm vs yarn の2択感覚でしたが、今は pnpm / Bun を含めた選択肢 として考えるほうが実態に合っています。とはいえ基本の npmnpx を押さえておけばまず困らないので、必要になったタイミングで他のツールを試せばOKです。


参考リンク

公式ドキュメント

比較記事

8
7
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
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?