gh640 / npm-cheatsheet-ja

(Japanese) npm コマンドの自分用チートシート

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

npm チートシート

npm コマンドの自分用チートシートです。利用者の立場で利用頻度の高いコマンドを並べています。

すべてのコマンドは公式ドキュメントで確認できます:

確認時バージョン

  • npm: 10.2.5

コマンド

npm audit

パッケージのセキュリティステータスをチェックし既知の脆弱性をリストアップする。

出力サンプル:
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

引数として fixsignatures を受け付ける。

npm audit fix
npm audit signatures
  • fix: 脆弱性修正のためにパッケージ更新を試みる
  • signatures: ダウンロードされたパッケージのシグネチャをチェックする

公式ドキュメント

npm ci / npm clean-install

npm install の CI / デプロイ用。 npm install と同様パッケージのインストールを行うが、クリーンインストールを行う点が異なる。

npm ci の特徴:

  • package-lock.jsonnpm-shrinkwrap.json が必須
  • package-lock.jsonpackage.json の間に依存関係の不一致があればエラーで終了する
  • 個別のパッケージの追加には使えない(=すべてのパッケージをインストールする用途でのみ使える)
  • node_modules がすでにある場合は先に削除してからパッケージのインストールを行う
  • package.jsonpackage-lock.json への書き込みを行わない

公式ドキュメント

npm completion

サブコマンドのタブ補完を有効にするためのコマンドを出力する。

使い方:

# bash
npm completion >> ~/.bashrc

# zsh
npm completion >> ~/.zshrc

公式ドキュメント

npm explain

インストール済みのパッケージの依存チェーンを出力する。

出力サンプル:
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

公式ドキュメント

npm init

package.json ファイルを作成する。プロジェクトの新規作成用。

公式ドキュメント

npm install / npm i

パッケージをインストールする。

引数としてパッケージ名が渡されたときはそのパッケージをインストールする。パッケージ名が渡されなかったときは package.json npm-shrinkwrap.json package-lock.json などで指定されているパッケージをインストールする。

公式ドキュメント

npm ls / npm list

インストールされているパッケージのバージョンを出力する。

引数なしの場合は 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

公式ドキュメント

npm outdated

インストールされているパッケージのうち最新でないもの(=更新可能なもの)の一覧を出力する。

デフォルトでは package.json で指定されたものだけをチェックする:

npm outdated

--all オプションが指定された場合は依存先も含めて表示する:

npm outdated --all

公式ドキュメント

npm repo

パッケージリポジトリページをブラウザで開く。

公式ドキュメント

サンプル:

npm repo axios

npm run-script / npm run

package.jsonscripts で定義されたスクリプトを実行する。

サンプル:

npm run dev

引数の渡し方

対象のスクリプトにオプション(= - で始まる引数)を渡したいときは -- で区切って渡す必要がある:

npm run test -- --grep="pattern"

スクリプトが指定されなかった場合は利用可能なスクリプトの一覧を出力する:

npm run

公式ドキュメント

npm start

package.jsonscripts.start で指定されたスクリプトを実行する。

scripts.start がない場合は node server.js が実行される。

公式ドキュメント

npm stop

package.jsonscripts.stop で指定されたスクリプトを実行する。

公式ドキュメント

npm test

package.jsonscripts.test で指定されたスクリプトを実行する。

公式ドキュメント

npm uninstall / npm un / npm remove / npm rm

パッケージをアンインストールする。

package.jsonnpm-shrinkwrap.json package-lock.json に記載された該当パッケージの情報も削除する。

公式ドキュメント

npm update npm up

semver 制約を守りながらパッケージを更新する。

公式ドキュメント

npm view

パッケージに関する情報を出力する。

出力サンプル:
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 [パッケージ名]

About

(Japanese) npm コマンドの自分用チートシート