📦 プロジェクトの初期化とパッケージ管理ファイルの操作
プロジェクトを開始し、package.json
ファイルを管理するためのコマンドです。
コマンド | 説明 | 主なオプション |
---|---|---|
npm init |
対話形式で package.json ファイルを生成します。プロジェクトのルートディレクトリで実行します。📝 |
-y / --yes : 全ての質問にデフォルト値で回答し、対話なしで生成します。 |
npm set-script <script-name> "<command>" |
package.json の scripts セクションに新しいスクリプトを追加または更新します。 |
– |
npm pkg set <key>=<value> |
package.json 内の指定したキーの値を設定します。ネストしたキーもドット記法で指定可能です。(例: npm pkg set dependencies.lodash="^4.17.21" ) |
– |
npm pkg get <key> |
package.json 内の指定したキーの値を取得します。 (例: npm pkg get version ) |
– |
npm pkg delete <key> |
package.json 内の指定したキーとその値を削除します。 |
– |
使用例:
# 対話形式で package.json を作成
npm init
# デフォルト値で package.json を作成
npm init -y
# scripts に "start" スクリプトを追加
npm set-script start "node server.js"
# package.json のバージョンを取得
npm pkg get version
# package.json にカスタムフィールドを追加
npm pkg set customField.enabled=true
💾 パッケージのインストール
プロジェクトに必要なパッケージをインストールするためのコマンドです。
コマンド | 説明 | 主な依存関係タイプ |
---|---|---|
npm install |
package.json に記載されている全ての依存関係(dependencies, devDependencies など)を node_modules ディレクトリにインストールします。package-lock.json が存在する場合は、ロックファイルに基づいて正確なバージョンをインストールします。 |
全て |
npm install <package-name> |
指定したパッケージをインストールし、デフォルトで dependencies に追加します。package.json と package-lock.json が更新されます。 |
dependencies (本番環境用) |
npm i <package-name> |
npm install <package-name> のエイリアス(短縮形)です。 |
dependencies (本番環境用) |
npm install <package-name>@<version> |
指定したバージョンのパッケージをインストールします。バージョンは、1.2.3 , ^1.2.3 , ~1.2.3 , latest , next など、様々な形式で指定可能です。 |
dependencies (本番環境用) |
npm install <package-name> --save-dev |
指定したパッケージをインストールし、devDependencies に追加します。開発時にのみ必要なパッケージ(テストライブラリ、ビルドツールなど)に使用します。🧪 |
devDependencies (開発環境用) |
npm install <package-name> -D |
--save-dev のエイリアスです。 |
devDependencies (開発環境用) |
npm install <package-name> --save-prod |
指定したパッケージをインストールし、dependencies に追加します。これはデフォルトの動作ですが、明示的に指定したい場合に使用します。 |
dependencies (本番環境用) |
npm install <package-name> -P |
--save-prod のエイリアスです。 |
dependencies (本番環境用) |
npm install <package-name> --save-optional |
指定したパッケージをインストールし、optionalDependencies に追加します。インストールに失敗しても、npm のプロセスはエラーとなりません。特定の環境でのみ動作するパッケージなどに使用します。🤔 |
optionalDependencies |
npm install <package-name> -O |
--save-optional のエイリアスです。 |
optionalDependencies |
npm install <package-name> --save-exact |
指定したパッケージをインストールし、バージョンプレフィックス(^ や ~ )なしの完全なバージョン番号で dependencies に追加します。バージョンを固定したい場合に使用します。🔒 |
dependencies (本番環境用) |
npm install <package-name> -E |
--save-exact のエイリアスです。 |
dependencies (本番環境用) |
npm install <package-name> -g |
指定したパッケージをグローバルにインストールします。コマンドラインツールなど、プロジェクト固有ではなくシステム全体で使用するパッケージに使用します。🌐 | グローバル |
npm install --production |
package.json の dependencies に記載されたパッケージのみをインストールします。devDependencies は無視されます。本番環境へのデプロイ時などに使用します。🏭 |
dependencies のみ |
npm install --only=dev |
devDependencies のみインストールします。CI 環境でのテスト実行前などに使用できます。 |
devDependencies のみ |
npm install --no-save |
パッケージをインストールしますが、package.json を更新しません。一時的な試用などに使用します。 |
(依存関係に追加しない) |
npm install <git-repo-url> |
Git リポジトリから直接パッケージをインストールします。 (例: npm install git+https://github.com/user/repo.git#commit-ish ) |
dependencies (本番環境用) |
npm install <local-path> |
ローカルのディレクトリや tgz ファイルからパッケージをインストールします。 (例: npm install ../my-local-package ) |
dependencies (本番環境用) |
npm ci |
package-lock.json または npm-shrinkwrap.json に基づいて、クリーンな状態で依存関係をインストールします。node_modules が存在する場合は一度削除されます。CI/CD 環境での再現性の高いビルドに適しています。✨ |
全て (ロックファイル基準) |
使用例:
# プロジェクトの依存関係を全てインストール
npm install
# React を dependencies にインストール
npm install react
# Jest を devDependencies にインストール (-D は --save-dev のエイリアス)
npm install jest -D
# 特定バージョンの Lodash をインストール
npm install lodash@4.17.20
# バージョンを固定して Express をインストール (-E は --save-exact のエイリアス)
npm install express -E
# グローバルに http-server をインストール (-g は --global のエイリアス)
npm install -g http-server
# package-lock.json に基づいてクリーンインストール (CI環境向け)
npm ci
# 本番用の依存関係のみインストール
npm install --production
# Gitリポジトリからインストール
npm install git+ssh://git@github.com:lodash/lodash.git#4.17.21
🔄 パッケージの更新とアンインストール
インストール済みのパッケージを最新版に更新したり、不要になったパッケージを削除したりするためのコマンドです。
コマンド | 説明 | 主な対象 |
---|---|---|
npm update |
package.json のバージョン指定範囲内で、インストールされているパッケージを最新バージョンに更新します。package-lock.json も更新されます。 |
ローカルパッケージ |
npm update <package-name> |
指定したパッケージを、package.json のバージョン指定範囲内で最新バージョンに更新します。 |
指定したローカルパッケージ |
npm update -g |
グローバルにインストールされているパッケージを最新バージョンに更新します。 | グローバルパッケージ |
npm update -g <package-name> |
指定したグローバルパッケージを最新バージョンに更新します。 | 指定したグローバルパッケージ |
npm uninstall <package-name> |
指定したパッケージを node_modules から削除し、package.json と package-lock.json から依存関係を削除します (dependencies , devDependencies , optionalDependencies のいずれからも削除)。🗑️ |
指定したローカルパッケージ |
npm un <package-name> |
npm uninstall <package-name> のエイリアスです。 |
指定したローカルパッケージ |
npm remove <package-name> |
npm uninstall <package-name> のエイリアスです。 |
指定したローカルパッケージ |
npm rm <package-name> |
npm uninstall <package-name> のエイリアスです。 |
指定したローカルパッケージ |
npm uninstall <package-name> --no-save |
パッケージを node_modules から削除しますが、package.json は更新しません。 |
指定したローカルパッケージ (ファイルのみ) |
npm uninstall <package-name> -g |
指定したグローバルパッケージをアンインストールします。 | 指定したグローバルパッケージ |
npm prune |
package.json に記載されていないパッケージを node_modules から削除します。 |
未使用のローカルパッケージ |
npm prune --production |
devDependencies にのみ記載されているパッケージを node_modules から削除します。 |
開発用のローカルパッケージ |
使用例:
# ローカルパッケージを可能な限り更新
npm update
# 特定のパッケージ 'lodash' を更新
npm update lodash
# グローバルパッケージを可能な限り更新
npm update -g
# ローカルから 'axios' をアンインストールし、package.json も更新
npm uninstall axios
# グローバルから 'create-react-app' をアンインストール
npm uninstall -g create-react-app
# package.json に記載されていないパッケージを node_modules から削除
npm prune
🔍 パッケージのリスト表示と検索
インストールされているパッケージを確認したり、npm レジストリ上のパッケージを検索したりするためのコマンドです。
コマンド | 説明 | 主なオプション |
---|---|---|
npm list |
ローカルにインストールされているパッケージとその依存関係をツリー形式で表示します。🌲 | --depth=<number> : 表示する依存関係の深さを指定します (デフォルトは全て)。--depth=0 で直接の依存関係のみ表示します。--json : 結果を JSON 形式で出力します。--prod / --only=prod : dependencies のみ表示します。--dev / --only=dev : devDependencies のみ表示します。 |
npm ls |
npm list のエイリアスです。 |
npm list と同じ |
npm list -g |
グローバルにインストールされているパッケージを表示します。 | --depth=<number> : 同上。--depth=0 がよく使われます。 |
npm outdated |
インストールされているパッケージの中で、package.json のバージョン指定範囲内で更新可能なもの、またはより新しいバージョンが利用可能なものをリスト表示します。更新が必要かどうかの確認に便利です。👀 |
-g / --global : グローバルパッケージをチェックします。 |
npm search <keyword> |
npm レジストリから指定したキーワードに一致するパッケージを検索します。 | --long : 詳細情報を表示します。 |
npm view <package-name> [field] |
指定したパッケージの情報を npm レジストリから取得して表示します。フィールドを指定するとその情報のみ表示します (例: version , versions , dist-tags , dependencies )。 |
例: npm view react versions |
npm info <package-name> [field] |
npm view のエイリアスです。 |
npm view と同じ |
npm find-dupes |
依存関係ツリー内で重複してインストールされているパッケージを探します。バンドルサイズの削減などに役立ちます。 | – |
使用例:
# ローカルパッケージをツリー表示
npm list
# ローカルのトップレベルパッケージのみ表示
npm list --depth=0
# グローバルのトップレベルパッケージのみ表示
npm list -g --depth=0
# 更新可能なローカルパッケージを表示
npm outdated
# 'react' というキーワードでパッケージを検索
npm search react
# 'react' パッケージの利用可能な全バージョンを表示
npm view react versions
# 'lodash' パッケージの最新バージョン情報を表示
npm view lodash version
# 重複している依存関係を探す
npm find-dupes
▶️ スクリプトの実行
package.json
の scripts
セクションに定義されたコマンドを実行します。
コマンド | 説明 | 補足 |
---|---|---|
npm run <script-name> |
package.json の scripts に定義された指定のスクリプトを実行します。 |
start , stop , test , restart などの一部の標準スクリプトは run を省略可能です (例: npm start )。 |
npm start |
scripts の start スクリプトを実行します (npm run start と同等)。 |
一般的によく使われる標準スクリプト。 |
npm stop |
scripts の stop スクリプトを実行します (npm run stop と同等)。 |
一般的によく使われる標準スクリプト。 |
npm test |
scripts の test スクリプトを実行します (npm run test と同等)。🧪 |
一般的によく使われる標準スクリプト。 |
npm restart |
stop , restart , start スクリプトを順に実行します (npm run restart と同等)。 |
一般的によく使われる標準スクリプト。 |
npm run |
引数なしで実行すると、package.json の scripts に定義されている全てのスクリプト名を表示します。📜 |
利用可能なスクリプトを確認できます。 |
npm run <script-name> -- <args> |
スクリプトに引数を渡します。-- の後に指定した引数が、実行されるコマンドにそのまま渡されます。 |
例: npm run test -- --watch は、test スクリプトのコマンドに --watch オプションを追加して実行します。 |
npx <command> |
ローカルの node_modules/.bin またはグローバルにインストールされたコマンド、あるいは npm レジストリから一時的にダウンロードしたパッケージのコマンドを実行します。ローカルにインストールした CLI ツールを実行するのに便利です。🏃 |
例: npx jest はローカルにインストールされた Jest を実行します。 |
package.json の例:
{
"name": "my-app",
"version": "1.0.0",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "jest",
"lint": "eslint .",
"build": "webpack --mode production"
},
"dependencies": { ... },
"devDependencies": { ... }
}
使用例:
# start スクリプトを実行 (node index.js が実行される)
npm start
# dev スクリプトを実行 (nodemon index.js が実行される)
npm run dev
# test スクリプトを実行 (jest が実行される)
npm test
# lint スクリプトを実行
npm run lint
# test スクリプトに引数 --coverage を渡して実行
npm run test -- --coverage
# 利用可能なスクリプト一覧を表示
npm run
# ローカルにインストールされた webpack を使ってビルド
npx webpack --mode development
☁️ パッケージの公開 (Publishing)
作成したパッケージを npm レジストリに公開するためのコマンドです。公開前に npm アカウントでのログインが必要です。
コマンド | 説明 | 主なオプション |
---|---|---|
npm login |
npm レジストリにログインします。ユーザー名、パスワード、メールアドレス(初回時)、ワンタイムパスワード(2FA設定時)が要求されます。 | --registry=<url> : デフォルト以外のレジストリにログインします。--scope=<@scope> : 特定のスコープに関連付けられたレジストリにログインします。 |
npm whoami |
現在ログインしている npm ユーザー名を表示します。 | – |
npm logout |
npm レジストリからログアウトします。 | – |
npm version <newversion> |
package.json と package-lock.json のバージョンを更新し、Git を使用している場合はバージョンタグをコミット・作成します。(patch , minor , major なども指定可能) |
-m "Commit message" : コミットメッセージを指定します。 --no-git-tag-version : Git のコミットとタグ付けを行いません。 |
npm publish |
現在のディレクトリにあるパッケージを npm レジストリに公開します。公開する前に package.json の name と version が適切に設定されている必要があります。🚀 |
--tag <tagname> : latest 以外のディストリビューションタグを指定して公開します (例: beta , next )。--access <public|restricted> : スコープ付きパッケージ (@scope/package ) のアクセスレベルを指定します (デフォルトは restricted )。公開するには public を指定する必要があります。 |
npm unpublish <package-name>@<version> |
指定したバージョンのパッケージを npm レジストリから削除します。⚠️ 注意: 公開後72時間以内などの制限があります。原則として非推奨です。 | --force : 確認プロンプトなしで強制的に削除します。 |
npm deprecate <package-name>@<version-range> "<message>" |
指定したバージョンのパッケージを非推奨にし、インストール時に警告メッセージを表示するようにします。unpublish の代替として推奨されます。📢 |
– |
npm owner add <user> <package-name> |
パッケージにメンテナー(所有者)を追加します。 | – |
npm owner rm <user> <package-name> |
パッケージからメンテナーを削除します。 | – |
npm owner ls <package-name> |
パッケージのメンテナーリストを表示します。 | – |
⚠️ 注意
npm publish
を実行する前に、.npmignore
ファイルまたはpackage.json
のfiles
フィールドを使用して、不要なファイルがパッケージに含まれないように設定することが重要です。- 一度公開したパッケージのバージョンは、原則として上書きできません。修正が必要な場合は新しいバージョンとして公開します。
npm unpublish
は他のプロジェクトに影響を与える可能性があるため、慎重に使用してください。代わりにnpm deprecate
の使用を検討してください。
使用例:
# npm にログイン
npm login
# 現在のログインユーザーを確認
npm whoami
# パッチバージョンを上げて Git タグも作成
npm version patch
# マイナーバージョンを上げる (Git タグなし)
npm version minor --no-git-tag-version
# パッケージを公開 (スコープなしの場合)
npm publish
# スコープ付きパッケージを公開 (例: @my-org/my-package)
# package.json の name が "@my-org/my-package" である必要あり
npm publish --access public
# 'beta' タグを付けて公開
npm publish --tag beta
# 特定バージョンを非推奨にする
npm deprecate my-package@"< 1.0.0" "このバージョンは古いので使用しないでください。1.0.0 以上を利用してください。"
# パッケージ 'my-package' にユーザー ' collaborator' をメンテナーとして追加
npm owner add collaborator my-package
⚙️ npm の設定とキャッシュ管理
npm の動作を設定したり、キャッシュを管理したりするためのコマンドです。
コマンド | 説明 | レベル |
---|---|---|
npm config set <key> <value> |
npm の設定値を設定します。デフォルトではユーザーレベルの設定ファイル (~/.npmrc ) に書き込まれます。 |
--global : グローバル設定ファイル (npm インストール場所の etc/npmrc ) に書き込みます。--location=project : プロジェクトレベルの設定ファイル (/path/to/project/.npmrc ) に書き込みます。 |
npm config get <key> |
指定した設定キーの値を取得します。 | – |
npm config delete <key> |
指定した設定キーを削除します。 | – |
npm config list |
現在の npm 設定を全て表示します。 | -l : 全てのデフォルト設定も含めて表示します。--json : JSON 形式で出力します。 |
npm config edit |
設定ファイル (デフォルトは ~/.npmrc ) をエディタで開きます。 |
--global : グローバル設定ファイルを開きます。 |
npm cache clean --force |
npm のキャッシュを強制的に削除します。(npm v5 以降ではあまり推奨されず、問題発生時の最終手段とされています) 🧹 | – |
npm cache verify |
npm キャッシュの内容を検証し、不要なデータや破損したデータをクリーンアップします。キャッシュ関連の問題が疑われる場合にまず試すべきコマンドです。👍 | – |
npm get prefix [-g] |
npm がパッケージをインストールするディレクトリのパスを表示します。-g を付けるとグローバルインストール先のパスを表示します。 |
ローカル or グローバル |
npm get cache |
npm キャッシュディレクトリのパスを表示します。 | – |
使用例:
# レジストリをプライベートレジストリに設定 (ユーザーレベル)
npm config set registry https://my-private-registry.example.com
# 設定されたレジストリを確認
npm config get registry
# init コマンドのデフォルト作者名を設定
npm config set init-author-name "My Name"
# 全ての設定を表示
npm config list -l
# npm キャッシュを検証・クリーンアップ
npm cache verify
# グローバルインストール先のパスを表示
npm get prefix -g
# キャッシュディレクトリのパスを表示
npm get cache
ℹ️ その他のユーティリティ・情報表示コマンド
npm のバージョン確認やヘルプ表示など、その他の便利なコマンドです。
コマンド | 説明 |
---|---|
npm -v / npm --version |
インストールされている npm のバージョンを表示します。 |
npm version |
npm、Node.js、およびその他の関連モジュールのバージョンを表示します。 |
npm help |
npm のヘルプドキュメントを表示します。 |
npm help <command> |
指定した npm コマンドのヘルプドキュメントを表示します。 (例: npm help install ) |
npm doctor |
npm のインストール環境に問題がないか診断します。レジストリへの接続、キャッシュの状態、Node.js/npm のバージョンなどをチェックします。🩺 |
npm repo [<package-name>] |
指定したパッケージ、または現在のプロジェクトのリポジトリ URL をブラウザで開きます。 |
npm bugs [<package-name>] |
指定したパッケージ、または現在のプロジェクトのバグトラッカー URL をブラウザで開きます。🐞 |
npm home [<package-name>] |
指定したパッケージ、または現在のプロジェクトのホームページ URL をブラウザで開きます。🏠 |
npm root [-g] |
node_modules ディレクトリのパスを表示します。-g でグローバルな node_modules のパスを表示します。 |
使用例:
# npm のバージョンを表示
npm -v
# npm install コマンドのヘルプを表示
npm help install
# npm 環境の診断を実行
npm doctor
# 現在のプロジェクトのリポジトリをブラウザで開く
npm repo
# 'react' パッケージのバグトラッカーをブラウザで開く
npm bugs react
# ローカルの node_modules ディレクトリのパスを表示
npm root
このチートシートは npm の主要なコマンドを網羅することを目的としていますが、全てのオプションや詳細な動作を記載しているわけではありません。特定のコマンドについてより詳しく知りたい場合は、npm help <command>
を実行するか、公式ドキュメントを参照してください。
コメント