インストール
npmとNodeのインストール
node -v && npm -v # インストール済みバージョンを確認 npm install -g npm@latest # npm自身を更新 nvm install --lts # nvmでNode LTSをインストール nvm use 20 # Node 20に切り替え
インストールコマンド
npm installpackage.jsonから全依存関係をインストール
npm install pkgパッケージを依存関係として追加
npm install -D pkgパッケージをdevDependencyとして追加
npm install -g pkgパッケージをグローバルにインストール
npm install [email protected]特定バージョンをインストール
npm ciロックファイルからクリーンインストール(CI/CD)
npm uninstall pkgパッケージを削除
パッケージ管理
パッケージの管理
npm ls # インストール済みパッケージを一覧表示 npm ls --depth=0 # トップレベルのみ npm outdated # 新しいバージョンを確認 npm update # semverの範囲内で更新 npm audit # 脆弱性を確認
管理コマンド
npm lsインストール済みパッケージをツリー表示
npm outdated新しいバージョンがあるパッケージを表示
npm update [pkg]semverの範囲内でパッケージを更新
npm audit依存関係の脆弱性を監査
npm audit fix脆弱な依存関係を自動修正
npm prune不要なパッケージを削除
npm dedupe依存関係ツリーをフラット化して重複を削減
スクリプト
スクリプトの実行
npm run build # "build"スクリプトを実行 npm test # "test"スクリプトのショートカット npm start # "start"スクリプトのショートカット npm run lint -- --fix # スクリプトに引数を渡す npm run dev & # バックグラウンドで実行
スクリプトのライフサイクル
npm test / npm tscripts.testを実行
npm startscripts.startを実行
npm run <name>任意のカスタムスクリプトを実行
pre<name>の前に自動実行
post<name>の後に自動実行
npm run利用可能な全スクリプトを一覧表示
package.json
初期化とフィールド
npm init # 対話式セットアップ npm init -y # 全てのデフォルトを受け入れ npm pkg set name="my-app" # フィールドを設定 npm pkg get version # フィールドを読み込み
主要フィールド
nameパッケージ名(小文字、スペースなし)
version現在のバージョン(semver:major.minor.patch)
mainCommonJSのエントリーポイント(require
moduleESモジュールのエントリーポイント(バンドラー用)
typeESM用に"module"、CJS用に"commonjs"(デフォルト)
scripts名前付きコマンド(build、test、startなど)
dependencies本番用依存関係
devDependencies開発用のみの依存関係
engines必要なNode/npmのバージョン範囲
バージョン管理
バージョンコマンド
npm version patch # 1.0.0 → 1.0.1 npm version minor # 1.0.1 → 1.1.0 npm version major # 1.1.0 → 2.0.0 npm version 3.2.1 # 明示的なバージョンを設定 npm version prerelease --preid=beta # 1.0.0-beta.0
semverの範囲
^1.2.3互換性あり:>=1.2.3 <2.0.0(デフォルト)
~1.2.3パッチレベル:>=1.2.3 <1.3.0
1.2.3完全一致のバージョンのみ
>=1.0.0 <2.0.0明示的な範囲
*任意のバージョン
1.x / 1.2.xワイルドカード範囲
latest最新公開バージョンタグ
公開
公開ワークフロー
npm login # レジストリに認証 npm publish # パブリックパッケージを公開 npm publish --access public # スコープ付きパッケージをパブリックとして公開 npm unpublish [email protected] # 特定バージョンを削除 npm deprecate pkg@"<2" "v2を使用" # 古いバージョンを非推奨化
公開リファレンス
npm loginnpmレジストリで認証
npm publishパッケージをレジストリに公開
npm pack公開せずにtarballを作成
npm unpublish公開済みバージョンを削除(72時間以内)
npm deprecateバージョンを非推奨としてマーク
.npmignore公開パッケージから除外するファイル
files (package.json)パッケージに含めるファイルの許可リスト
ワークスペース
ワークスペースコマンド
npm init -w packages/core # ワークスペースを作成 npm install -w packages/core lodash # ワークスペースにインストール npm run build --workspaces # 全ワークスペースで実行 npm run test -w packages/api # 特定のワークスペースで実行 npm ls --workspaces # ワークスペースの依存関係を一覧表示
ワークスペース設定
workspaces (package.json)ワークスペースのglob配列:["packages/*"]
-w / --workspace特定のワークスペースを対象とする
--workspaces全ワークスペースでコマンドを実行
--include-workspace-rootワークスペース操作にルートパッケージを含める
npm install(ルート)全ワークスペースの依存関係をインストール
ホイスティング共有依存関係はルートのnode_modulesにホイスト
npx
npxでの実行
npx create-react-app my-app # インストールせずに実行 npx tsc --init # ローカルまたはリモートのバイナリを実行 npx -p typescript tsc file.ts # パッケージを明示的に指定 npx --yes create-next-app # インストールプロンプトをスキップ npx node@18 -e "console.log('hi')" # 特定のNodeで実行
npxオプション
npx cmdローカルのnode_modules/.binまたはリモートからcmdを実行
npx -p pkg cmdpkgをインストールしてcmdを実行
npx --yes cmdインストールプロンプトを自動承認
npx --no cmdインストールを拒否 — ローカルになければ失敗
npx -c 'cmd'npxのPATHでシェルコマンドを実行
npx node@ver特定のNode.jsバージョンで実行
設定
設定コマンド
npm config list # 現在の設定を表示 npm config set registry https://r.npmjs.com/ npm config set init-author-name "Name" npm config get prefix # グローバルインストールパス npm config delete key # 設定値を削除
設定リファレンス
.npmrc(プロジェクト)プロジェクトごとの設定ファイル
~/.npmrcユーザーごとの設定ファイル
registryパッケージレジストリURL
save-exactインストール時に完全一致バージョンを固定する場合はtrue
engine-strictenginesフィールドを強制する場合はtrue
fund資金調達メッセージを抑制する場合はfalse
auditインストール時の監査をスキップする場合はfalse
よくあるパターン
ワンライナー
npm ls --depth=0 --json | jq '.dependencies | keys[]' npm outdated --long # 型とホームページを表示 npm cache clean --force # npmキャッシュをクリア npm explain pkg # pkgがインストールされている理由 npm exec -- envinfo --system # バグレポート用システム情報
レシピ
ロックファイルのみnpm ci — package-lock.jsonからクリーンインストール
ライセンス確認npx license-checker --summary
未使用の依存関係を検索npx depcheck
バンドルサイズnpx bundlephobia-cli pkg — パッケージサイズを確認
全て更新npx npm-check-updates -u && npm install
ローカルレジストリnpx verdaccio — プライベートレジストリを実行