パッケージマネージャー コマンド横断検索
npm・yarn・pnpm・bun のコマンドを横断比較
比較メモ: npm は install、yarn/pnpm/bun は add を使う。npm i は install のエイリアス
npm install -Dnpm install -D <package>
npm install -D typescript
TypeScript を devDependency に追加
* --save-dev でも可
公式ドキュメントyarn add -Dpnpm add -Dpnpm add -D <package>
pnpm add -D typescript
TypeScript を devDependency に追加
* --save-dev でも可
公式ドキュメントbun add -d比較メモ: npm/pnpm は -D(--save-dev)、yarn は -D(--dev)、bun は -d(--dev)。いずれも devDependencies に記録される
npm install pkg@versionyarn add pkg@versionpnpm add pkg@versionbun add pkg@version比較メモ: 全PM共通で @バージョン 形式。@latest でタグ指定、@^18.0.0 で範囲指定も可能
比較メモ: yarn は引数なしの yarn だけで install が実行される。bun install は npm より最大25倍高速(公式ベンチマーク)
npm install ./pathnpm install <path>
npm install ./my-lib
ローカルのmy-libパッケージをインストール
* npm install ./pkg.tgz で tarball も可
公式ドキュメントyarn add file:./pathyarn add file:<path>
yarn add file:./my-lib
ローカルのmy-libパッケージをインストール
* yarn add link:./my-lib でシンボリックリンクも可
公式ドキュメントpnpm add ./path比較メモ: yarn は file: プロトコルで明示する。link: を使うとシンボリックリンクとしてインストールされる
yarn add -Epnpm add -Ebun add --exact比較メモ: デフォルトでは ^18.2.0 のように範囲指定される。-E で 18.2.0 として固定し、意図しないアップデートを防止できる
npm uninstall比較メモ: npm は uninstall、yarn/pnpm/bun は remove。いずれも package.json と node_modules から削除される
比較メモ: npm update は semver 範囲内でのみ更新。メジャーバージョンを上げるには npm install pkg@latest が必要
yarn upgrade-interactiveyarn upgrade-interactive
yarn upgrade-interactive
インタラクティブに更新パッケージを選択
* Classic Yarn では yarn outdated
公式ドキュメント比較メモ: npm outdated は Current(現在)/ Wanted(semver範囲内の最新)/ Latest(最新)の3列で表示される
直接対応するコマンドなし
npm-check-updates(npx ncu)で代替可能
yarn upgrade-interactive直接対応するコマンドなし
bun update で一括更新は可能だが対話的選択は未対応
比較メモ: npm は標準で対話的更新を提供しない。npx ncu -i(npm-check-updates)がサードパーティの定番ツール
比較メモ: yarn/pnpm/bun は run を省略して直接スクリプト名を指定可能。npm も npm start / npm test は run を省略可能
yarn dlxyarn dlx <command>
yarn dlx create-react-app my-app
create-react-app をダウンロードして実行
* Classic Yarn では npx 相当はなし
公式ドキュメントpnpm dlxpnpm dlx <command>
pnpm dlx create-react-app my-app
create-react-app をダウンロードして実行
* pnpx は非推奨。pnpm dlx を使う
公式ドキュメント比較メモ: npx は未インストールのパッケージを一時的にダウンロードして実行する。yarn dlx / pnpm dlx / bunx が同等
比較メモ: node_modules/.bin/ にインストールされたコマンドを呼び出す。パスを通さなくても各PMが自動で解決する
比較メモ: bun test は package.json の scripts ではなく、Bun 内蔵の Jest 互換テストランナーを実行する
npm config set registrynpm config set registry <url>
npm config set registry https://registry.npmmirror.com/
レジストリを変更
* .npmrc に永続保存される
公式ドキュメントyarn config set npmRegistryServeryarn config set npmRegistryServer <url>
yarn config set npmRegistryServer https://registry.npmmirror.com/
レジストリを変更
* .yarnrc.yml に保存。Classic は yarn config set registry
公式ドキュメントpnpm config set registrypnpm config set registry <url>
pnpm config set registry https://registry.npmmirror.com/
レジストリを変更
* .npmrc を共有
公式ドキュメントbunfig.toml[install] registry = "<url>"
echo '[install]\nregistry = "https://registry.npmmirror.com/"'
bunfig.toml でレジストリを設定
* 環境変数 BUN_CONFIG_REGISTRY でも設定可
公式ドキュメント比較メモ: npm/pnpm は .npmrc を共有。yarn は .yarnrc.yml。bun は bunfig.toml。プライベートレジストリ設定時に重要
直接対応するコマンドなし
bunfig.toml を直接確認する。bun config コマンドは未対応
比較メモ: bun は設定ファイル(bunfig.toml)を直接読み書きする方式で、コマンドによる設定管理は限定的
npm publishnpm publish [--access public]
npm publish --access public
パッケージを公開(スコープ付きの場合 --access public が必要)
yarn npm publishyarn npm publish [--access public]
yarn npm publish --access public
パッケージを公開
* Classic では yarn publish
公式ドキュメント比較メモ: @scope/package 形式のスコープ付きパッケージは --access public を付けないとプライベート扱いになる
比較メモ: npm publish する前に npm pack --dry-run で含まれるファイルを確認するのがベストプラクティス
npm cache clean --forceyarn cache cleanpnpm store prunepnpm store prune
pnpm store prune
参照されなくなったパッケージをストアから削除
* pnpm の content-addressable store をクリーンアップ
公式ドキュメント比較メモ: pnpm はグローバルストア(content-addressable store)を使うため、store prune で未使用パッケージのみ削除される
yarn cache listnpm viewnpm view <package> [field]
npm view react versions
React の公開バージョン一覧を表示
* npm info / npm show でも可
公式ドキュメントyarn npm infoyarn npm info <package> [--fields field]
yarn npm info react --fields versions
React の公開バージョン一覧を表示
* Classic では yarn info
公式ドキュメントpnpm view比較メモ: npm view <pkg> version で最新版、versions で全バージョン一覧を取得可能
yarn info --name-only比較メモ: --depth=0 でトップレベル(直接の依存)のみ表示。省略すると依存の依存も表示される
pnpm ls --depth Infinitynpm explain直接対応するコマンドなし
bun pm ls --all で依存ツリーを確認して手動で探す
比較メモ: npm explain / yarn why で「どのパッケージが lodash を要求しているか」を逆引きできる。不要な依存の特定に有用
比較メモ: bun init は TypeScript(tsconfig.json + index.ts)をデフォルトで生成する点が他と異なる
npm createnpm create <template> [name]
npm create vite@latest my-app
Vite テンプレートからプロジェクトを作成
* npm init <template> でも可。create-<template> パッケージを実行
公式ドキュメントyarn createyarn create <template> [name]
yarn create vite my-app
Vite テンプレートからプロジェクトを作成
* create-<template> パッケージを実行
公式ドキュメントpnpm createpnpm create <template> [name]
pnpm create vite my-app
Vite テンプレートからプロジェクトを作成
* create-<template> パッケージを実行
公式ドキュメントbun createbun create <template> [name]
bun create vite my-app
Vite テンプレートからプロジェクトを作成
* bun create は GitHub リポジトリからの作成にも対応
公式ドキュメント比較メモ: npm create vite は内部で create-vite パッケージを実行する。各PMで同じ仕組み
npm install -gyarn global addyarn global add <package>
yarn global add typescript
TypeScript をグローバルにインストール
* Yarn Berry(v2+)では非推奨。corepack を推奨
公式ドキュメントbun add -g比較メモ: グローバルインストールはシステム全体で使えるが、プロジェクトの再現性を損なう。npx / dlx / bunx の利用を推奨
npm uninstall -gyarn global removebun remove -gnpm -wnpm run <script> -w <workspace>
npm run build -w packages/ui
packages/ui ワークスペースの build を実行
* --workspace でも可
公式ドキュメントyarn workspaceyarn workspace <name> <command>
yarn workspace @myorg/ui build
@myorg/ui ワークスペースの build を実行
pnpm --filterpnpm --filter <name> <command>
pnpm --filter @myorg/ui build
@myorg/ui ワークスペースの build を実行
* -F でも可
公式ドキュメントbun --filter比較メモ: npm は -w、yarn は workspace、pnpm/bun は --filter でワークスペースを指定する
yarn workspaces foreachyarn workspaces foreach run <script>
yarn workspaces foreach run build
全ワークスペースで build を実行
* Classic では yarn workspaces run
公式ドキュメント比較メモ: pnpm -r は依存関係の順序を考慮して実行する。npm -ws は並列実行
npm install -wnpm install <package> -w <workspace>
npm install react -w packages/ui
packages/ui に React をインストール
yarn workspace addyarn workspace <name> add <package>
yarn workspace @myorg/ui add react
@myorg/ui に React をインストール
pnpm add --filterpnpm add <package> --filter <name>
pnpm add react --filter @myorg/ui
@myorg/ui に React をインストール
bun add --filterbun add <package> --filter <name>
bun add react --filter @myorg/ui
@myorg/ui に React をインストール
yarn workspaces listyarn install --immutableyarn install --immutable
yarn install --immutable
yarn.lock と一致しない場合はエラー
* Classic では yarn install --frozen-lockfile
公式ドキュメントpnpm install --frozen-lockfilebun install --frozen-lockfile比較メモ: CI 環境では必ずロックファイル固定インストールを使う。npm ci は node_modules を事前に削除するため npm install より高速かつ確実
npm install --package-lock-onlyyarn install --mode update-lockfileyarn install --mode update-lockfile
yarn install --mode update-lockfile
yarn.lock のみを更新
* Classic では yarn install --pure-lockfile に近い
公式ドキュメントpnpm install --lockfile-only直接対応するコマンドなし
bun install で自動的に bun.lock が更新される
比較メモ: マージコンフリクト解消時にロックファイルだけ再生成するのに便利
package-lock.json比較メモ: ロックファイルは必ずバージョン管理にコミットする。npm は JSON、yarn はカスタム形式、pnpm は YAML、bun はテキスト形式
yarn npm audit比較メモ: npm audit fix は semver 範囲内で安全なバージョンに自動更新する。--force を付けるとメジャーバージョンの更新も行う
直接対応するコマンドなし
bun は独自の依存解決で自動的に最適化される
比較メモ: pnpm はコンテンツアドレッサブルストアにより、物理的なディスク使用量が他PMより少ない
npm linknpm link / npm link <package>
cd my-lib && npm link && cd ../my-app && npm link my-lib
my-lib をリンクして my-app から参照
yarn linkyarn link / yarn link <package>
cd my-lib && yarn link && cd ../my-app && yarn link my-lib
my-lib をリンクして my-app から参照
pnpm linkpnpm link --global / pnpm link --global <package>
cd my-lib && pnpm link --global && cd ../my-app && pnpm link --global my-lib
my-lib をリンクして my-app から参照
bun linkbun link / bun link <package>
cd my-lib && bun link && cd ../my-app && bun link my-lib
my-lib をリンクして my-app から参照
比較メモ: ライブラリのローカル開発時に npm publish せずに動作確認するためのコマンド。開発完了後は unlink を忘れずに
直接対応するコマンドなし
yarn は自動的に不要パッケージを除外する。yarn install --production で devDependencies を除外
直接対応するコマンドなし
bun は自動的に不要パッケージを除外する
比較メモ: Docker イメージで本番用に devDependencies を除外する際に使う。マルチステージビルドでの利用が一般的
よくある質問
npm・yarn・pnpm・bun の違いは何ですか?
いずれも Node.js のパッケージマネージャーですが、それぞれ特徴が異なります。npm は Node.js に標準同梱される最も普及したPMです。yarn は Facebook(現 Meta)が開発し、ワークスペース機能やプラグインシステムが充実しています。pnpm はコンテンツアドレッサブルストアにより、ディスク使用量を大幅に削減します。bun は Zig 言語で開発された高速ランタイムに内蔵されたPMで、インストール速度が最大25倍高速です。
プロジェクトでどのパッケージマネージャーを選べばよいですか?
迷ったら npm から始めるのが無難です。Node.js に標準同梱されており、追加インストール不要で情報量も最多です。チーム開発でディスク容量を節約したい場合は pnpm、モノレポを運用するなら yarn Berry または pnpm、とにかくインストール速度を求めるなら bun がおすすめです。既存プロジェクトでは、リポジトリに存在するロックファイル(package-lock.json / yarn.lock / pnpm-lock.yaml / bun.lock)に合わせてください。
npm install と yarn add の違いは何ですか?
機能的にはほぼ同じで、パッケージを dependencies に追加してインストールします。npm は「install」、yarn/pnpm/bun は「add」というコマンド名の違いがあります。npm install は引数なしで全依存をインストールする意味もあり、yarn では引数なしの「yarn」が同等です。
npx と bunx と yarn dlx の違いは何ですか?
いずれも「インストールせずにパッケージのバイナリを一時的にダウンロードして実行する」コマンドです。npx(npm)が元祖で、yarn dlx(yarn)、pnpm dlx(pnpm)、bunx(bun)が同等のコマンドです。create-react-app のようなプロジェクトジェネレーターをワンショットで実行する場面でよく使います。bunx は bun の高速性を活かして特に素早く実行できます。
pnpm のコンテンツアドレッサブルストアとは何ですか?
pnpm はダウンロードしたパッケージをグローバルストア(~/.pnpm-store)に1回だけ保存し、各プロジェクトの node_modules からはハードリンクで参照します。同じバージョンの react が10プロジェクトで使われていても、ディスク上には1つだけ実体が存在します。これにより npm/yarn と比べてディスク使用量が大幅に削減されます。
ロックファイルとは何ですか?なぜ必要ですか?
ロックファイル(package-lock.json / yarn.lock / pnpm-lock.yaml / bun.lock)は、実際にインストールされた全パッケージの正確なバージョンを記録するファイルです。package.json の「^18.2.0」のような範囲指定だと、インストール時期によって異なるバージョンが入る可能性があります。ロックファイルをGitにコミットすることで、チーム全員とCI環境で完全に同じバージョンの依存関係を再現できます。
CI環境では通常のインストールと何が違いますか?
CI環境では npm ci / yarn install --immutable / pnpm install --frozen-lockfile / bun install --frozen-lockfile を使います。これらはロックファイルと package.json が一致しない場合にエラーにすることで、「ローカルではロックファイルを更新したのにコミットし忘れた」問題を検出します。npm ci は node_modules を事前に削除してクリーンインストールするため、通常の npm install より高速かつ確実です。
データはいつ更新されますか?
最終更新日: 2026-04-13。npm・yarn・pnpm・bun の主要コマンドを網羅しています。各PMの新機能やコマンド変更があれば随時更新します。Yarn は Berry(v2+)の構文を優先して掲載し、Classic(v1)との違いがある場合は補足しています。
開発者ツール一覧
すべて見るAWS・GCP・Azure サービスマッピング
AWS / GCP / Azure の同等サービスを横断検索・比較。クラウド移行・マルチクラウド設計に。
使う →
AIコーディングアシスタント コマンド検索
Claude Code・Codex CLIのスラッシュコマンドを横断検索・比較。カテゴリ・重要度フィルター付き。
使う →
CI/CD設定構文 横断比較
GitHub Actions・GitLab CI・CircleCI・AWS CodeBuildの設定構文を「やりたいこと」で逆引き横断比較。移行・転職時に便利。
使う →
シェルコマンド横断検索
Linux (bash) / cmd / PowerShell のコマンドを横断検索・比較。OS移行・併用に。
使う →
このツールについて
使い方
- 検索欄にコマンド名(例: install)や操作内容(例: パッケージ更新)を入力する
- 「npm」「yarn」「pnpm」「bun」のフィルターで見たいPMに絞り込む
- カテゴリドロップダウンでインストール・実行・ワークスペース等の種類別に絞り込む
- 難易度フィルター(基本・中級・応用)で自分のレベルに合ったコマンドを探す
このツールの特徴
- ✓4つのPMを横断比較:npm・yarn・pnpm・bun の同じ操作に対応するコマンドを並べて表示します。PM間の移行や切り替え時に「あのコマンド、このPMではなんだっけ?」をすぐ解決できます
- ✓「やりたいこと」から逆引き:「パッケージをインストールしたい」「キャッシュをクリアしたい」など、操作の目的からコマンドを検索できます
- ✓構文と実行例をセットで掲載:各コマンドに基本構文(syntax)と具体的な実行例を掲載しているため、コピー&ペーストですぐ使えます
- ✓公式ドキュメントへのリンク付き:npm Docs・Yarn Berry Docs・pnpm Docs・Bun Docs への直リンクで、詳細な仕様をすぐ確認できます
- ✓比較メモで違いを解説:同じ操作でもPM間で動作が異なる箇所(例: npm install vs yarn add、ロックファイル形式の違い)を比較メモで補足しています
こんなときに便利
- •npm に慣れていて、pnpm や bun への移行を検討している
- •転職先のプロジェクトで別のPMが使われていて、対応コマンドを知りたい
- •yarn Classic(v1)から yarn Berry(v2+)に移行してコマンド体系が変わった
- •CI/CD の設定で正しいインストールコマンド(npm ci 相当)を調べたい
- •モノレポのワークスペースコマンドをPM間で比較したい
なぜ「パッケージマネージャー横断検索」が必要なのか
JavaScript/TypeScript のエコシステムでは、npm・yarn・pnpm・bun の4つのパッケージマネージャーが並立しています。それぞれコマンド体系が微妙に異なるため、PM を切り替えるたびに「npm install に相当する yarn のコマンドは?」「CI で使うべきコマンドは npm ci?pnpm install --frozen-lockfile?」といった疑問が生じます。
既存のドキュメントは各PM単体のリファレンスがほとんどで、4つのPMを横断的に比較できるツールはほとんど存在しません。このツールは「やりたい操作」を起点に、4つのPMのコマンドを一覧比較することで、PM移行・併用のコストを最小化することを目指しています。
特にモノレポ(ワークスペース)のコマンドはPM間の差異が大きく、--filter / -w / workspace など指定方法が統一されていないため、横断比較の価値が高い領域です。
各パッケージマネージャーの概要
- •npm:Node.js に標準同梱されるパッケージマネージャー。最も広く使われており、npmjs.com に200万以上のパッケージが公開されています。v7 以降でワークスペースに対応し、v9 以降で大幅に高速化されました。
- •yarn:Meta(旧 Facebook)が開発したPM。Classic(v1)と Berry(v2+)で大きくアーキテクチャが異なります。Berry は Plug'n'Play(PnP)で node_modules を不要にし、Zero-Install でリポジトリからの即時起動を実現します。
- •pnpm:コンテンツアドレッサブルストアとハードリンクによるディスク効率化が最大の特徴。node_modules の構造が厳密で、宣言していない依存(phantom dependencies)へのアクセスを防止します。モノレポ機能も充実しています。
- •bun:Zig 言語で書かれた高速 JavaScript ランタイム内蔵のPM。npm 互換の CLI を提供し、bun install は npm の最大25倍高速(公式ベンチマーク)。テストランナー・バンドラーもランタイムに内蔵されています。