npm
コマンドの自分用チートシートです。利用者の立場で利用頻度の高いコマンドを並べています。
すべてのコマンドは公式ドキュメントで確認できます:
npm
:10.2.5
パッケージのセキュリティステータスをチェックし既知の脆弱性をリストアップする。
出力サンプル:
npm audit
# npm audit report
@cypress/request <=2.88.12
Severity: moderate
Server-Side Request Forgery in Request - https://github.com/advisories/GHSA-p8p7-x288-28g6
fix available via `npm audit fix --force`
Will install cypress@13.1.0, which is a breaking change
node_modules/@cypress/request
cypress 4.3.0 - 12.17.4
Depends on vulnerable versions of @cypress/request
node_modules/cypress
引数として fix
か signatures
を受け付ける。
npm audit fix
npm audit signatures
fix
: 脆弱性修正のためにパッケージ更新を試みるsignatures
: ダウンロードされたパッケージのシグネチャをチェックする
npm install
の CI / デプロイ用。 npm install
と同様パッケージのインストールを行うが、クリーンインストールを行う点が異なる。
npm ci
の特徴:
package-lock.json
かnpm-shrinkwrap.json
が必須package-lock.json
とpackage.json
の間に依存関係の不一致があればエラーで終了する- 個別のパッケージの追加には使えない(=すべてのパッケージをインストールする用途でのみ使える)
node_modules
がすでにある場合は先に削除してからパッケージのインストールを行うpackage.json
やpackage-lock.json
への書き込みを行わない
サブコマンドのタブ補完を有効にするためのコマンドを出力する。
使い方:
# bash
npm completion >> ~/.bashrc
# zsh
npm completion >> ~/.zshrc
インストール済みのパッケージの依存チェーンを出力する。
出力サンプル:
npm eplain axios
axios@0.21.4
node_modules/axios
axios@"^0.21.1" from gatsby@5.12.12
node_modules/gatsby
gatsby@"^5.2.0" from the root project
axios@1.6.2 dev
node_modules/wait-on/node_modules/axios
axios@"^1.6.1" from wait-on@7.2.0
node_modules/wait-on
wait-on@"7.2.0" from start-server-and-test@2.0.3
node_modules/start-server-and-test
dev start-server-and-test@"^2.0.0" from the root project
package.json
ファイルを作成する。プロジェクトの新規作成用。
パッケージをインストールする。
引数としてパッケージ名が渡されたときはそのパッケージをインストールする。パッケージ名が渡されなかったときは package.json
npm-shrinkwrap.json
package-lock.json
などで指定されているパッケージをインストールする。
インストールされているパッケージのバージョンを出力する。
引数なしの場合は package.json
で指定されているパッケージだけを表示する:
出力サンプル:
npm ls
project@version /path/to/the/project/root/
├── @fontsource/montserrat@4.5.14
├── @google-analytics/data@3.2.2
├── @supabase/supabase-js@2.21.0
├── @testing-library/cypress@9.0.0
├── autoprefixer@10.4.14
├── babel-jest@29.5.0
...
--all
オプションが指定された場合は依存先パッケージも含めてツリー構造(=依存関係グラフ)で表示する:
npm ls --all
--all
に加えて --depth
を使うと深さを指定できる:
npm ls --all --depth=2
引数でパッケージが指定された場合は該当するパッケージに関連するものだけ表示する:
出力サンプル:
❯ npm ls axios
myproject@1.0.0 /path/to/the/project/dir
├─┬ gatsby@5.12.12
│ └── axios@0.21.4
└─┬ start-server-and-test@2.0.3
└─┬ wait-on@7.2.0
└── axios@1.6.2
インストールされているパッケージのうち最新でないもの(=更新可能なもの)の一覧を出力する。
デフォルトでは package.json
で指定されたものだけをチェックする:
npm outdated
--all
オプションが指定された場合は依存先も含めて表示する:
npm outdated --all
パッケージリポジトリページをブラウザで開く。
サンプル:
npm repo axios
package.json
の scripts
で定義されたスクリプトを実行する。
サンプル:
npm run dev
対象のスクリプトにオプション(= -
で始まる引数)を渡したいときは --
で区切って渡す必要がある:
npm run test -- --grep="pattern"
スクリプトが指定されなかった場合は利用可能なスクリプトの一覧を出力する:
npm run
package.json
の scripts.start
で指定されたスクリプトを実行する。
scripts.start
がない場合は node server.js
が実行される。
package.json
の scripts.stop
で指定されたスクリプトを実行する。
package.json
の scripts.test
で指定されたスクリプトを実行する。
パッケージをアンインストールする。
package.json
や npm-shrinkwrap.json
package-lock.json
に記載された該当パッケージの情報も削除する。
semver 制約を守りながらパッケージを更新する。
パッケージに関する情報を出力する。
出力サンプル:
npm view axios
axios@1.6.2 | MIT | deps: 3 | versions: 85
Promise based HTTP client for the browser and node.js
https://axios-http.com
keywords: xhr, http, ajax, promise, node
dist
.tarball: https://registry.npmjs.org/axios/-/axios-1.6.2.tgz
.shasum: de67d42c755b571d3e698df1b6504cde9b0ee9f2
.integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==
.unpackedSize: 1.8 MB
dependencies:
follow-redirects: ^1.15.0 form-data: ^4.0.0 proxy-from-env: ^1.1.0
maintainers:
- mzabriskie <mzabriskie@gmail.com>
- nickuraltsev <nick.uraltsev@gmail.com>
- emilyemorehouse <emilyemorehouse@gmail.com>
- jasonsaayman <jasonsaayman@gmail.com>
dist-tags:
latest: 1.6.2 next: 1.2.0-alpha.1
published a month ago by jasonsaayman <jasonsaayman@gmail.com>
npm outdated
パッケージ名だけを一覧表示したいとき:
npm outdated --json | jq -r '.keys[]'
npm ls [パッケージ名]
# or
npm explain [パッケージ名]
出力サンプル:
npm ls axios
myproject@1.0.0 /path/to/the/project/dir
├─┬ gatsby@5.12.12
│ └── axios@0.21.4
└─┬ start-server-and-test@2.0.3
└─┬ wait-on@7.2.0
└── axios@1.6.2
npm view [パッケージ名]
# or
npm view [パッケージ名] dependencies
# or
npm view [パッケージ名] dependencies devDependencies
出力サンプル:
npm view axios
axios@1.6.2 | MIT | deps: 3 | versions: 85
Promise based HTTP client for the browser and node.js
https://axios-http.com
keywords: xhr, http, ajax, promise, node
dist
.tarball: https://registry.npmjs.org/axios/-/axios-1.6.2.tgz
.shasum: de67d42c755b571d3e698df1b6504cde9b0ee9f2
.integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==
.unpackedSize: 1.8 MB
dependencies:
follow-redirects: ^1.15.0 form-data: ^4.0.0 proxy-from-env: ^1.1.0
maintainers:
- mzabriskie <mzabriskie@gmail.com>
- nickuraltsev <nick.uraltsev@gmail.com>
- emilyemorehouse <emilyemorehouse@gmail.com>
- jasonsaayman <jasonsaayman@gmail.com>
dist-tags:
latest: 1.6.2 next: 1.2.0-alpha.1
published a month ago by jasonsaayman <jasonsaayman@gmail.com>
出力サンプル dependencies
付き:
npm view axios dependencies
{
'follow-redirects': '^1.15.0',
'form-data': '^4.0.0',
'proxy-from-env': '^1.1.0'
}
npm ls -a
npm repo [パッケージ名]