npmのコマンド まとめ


目次

  1. インストール系
  2. パッケージやnpmの情報表示
  3. パッケージの検索・監査
  4. パッケージ開発
  5. その他

1. インストール系

npm init

初期化(package.jsonファイルを作成)する。

$ npm init

# パッケージ名などを入力するのを省略したい場合
$ npm init -y
$ npm init --yes

npm install

package.json(またはpackagelock.json、npmshrinkwrap.json)ファイルに記載したパッケージとそれらのパッケージに依存するパッケージをインストールする。
具体的には、node_modulesフォルダを作成し、必要なファイルをインストールする。

# package.jsonに記載されてあるパッケージをインストールする
$ npm install

# 以下でも実行が可能
$ npm i
$ npm add

# パッケージを指定してインストールする
$ npm install [package name]
$ npm install react  

# パッケージのバージョンを指定してインストールする
$ npm install [package name]@version
$ npm install react@16            # reactのバージョン16をインストール
$ npm install react@latest        # reactの最新バージョンをインストール

# グローバルモードでパッケージをインストールする
$ npm install -g [package name]
$ npm install --global [package name]

# devDependenciesとしてインストールする(デフォルトはDependenciesとしてインストールする)
$ npm install -D [package name]
$ npm install --save-dev [package name]

# package.jsonに追記せずにインストールする
$ npm install --no-save [package name]

npm ci

package-lock.json(またはnpm-shrinkwrap.json)の内容にそってパッケージをインストールする。
(npm installコマンドより高速に動作する)

npm installとの違い

  • package-lock.json or npm-shrinkwrap.jsonが存在する必要がある。
  • package-lock.jsonの依存関係がpackage.jsonの依存関係と一致しない場合、npm ciはpackage-lock.jsonを更新せずにエラーで終了する。
  • npm ciはパッケージ全体をインストールすることしかできない(個別は無理)。
  • node_modeulesが既に存在する場合、npm ciがインストールを開始する前に自動的に削除される。
  • package.jsonやpackage-lock.jsonへの書き込みは行われない。

npm unistall

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

# 指定パッケージをアンインストールする
$ npm uninstall [package name]
$ npm uninstall react     # reactをアンインストールする

# 以下でも実行が可能
$ npm remove [package name]
$ npm rm [package name]
$ npm r [package name]
$ npm un [package name]
$ npm unlink [package name]

# package.jsonのdependenciesから削除し、パッケージをアンインストールする
$ npm uninstall -S [package name]
$ npm uninstall --save [package name]

# package.jsonのdevDependenciesから削除し、パッケージをアンインストールする
$ npm uninstall -D [package name]
$ npm uninstall --save-dev [package name]

# package.jsonのoptionalDependenciesから削除し、パッケージをアンインストールする
$ npm uninstall -O [package name]
$ npm uninstall --save-optional [package name]

# package.jsonから削除せず、パッケージをアンインストールする
$ npm uninstall --no-save [package name]

npm prune

インストールされた不要なパッケージを削除する。
package-lockを有効にしている場合、自動的にnpm pruneされるため不要。

npm edit

インストールしたパッケージを編集する。
具体的には、デフォルトのエディタでインストールしたパッケージのディレクトリを開く。

$ npm edit [package name]

npm update

インストールされたパッケージを最新のバージョンに更新する。

# 全てのパッケージを最新バージョンに更新する
$ npm update

# 以下でも実行が可能
$ npm up
$ npm upgrade

# パッケージを指定した場合は、指定したパッケージのみ最新のバージョンに更新する
$ npm update [package name]

npm outdated

パッケージのバージョンが古いかをチェックする。
インストールされたパッケージの現在のバージョン、最新のバージョンなどを表示する。

$ npm outdated [package name]

npm dedupe

依存関係の都合上で同じパッケージが異なるバージョンで複数インストールされた場合などに、
パッケージの重複を整理する。

# パッケージの重複を整理
$ npm dedupe

# 以下でも実行が可能
$ npm ddp
$ npm find-dups

2. パッケージやnpmの情報表示

npm

npmの使い方を簡易表示する。
(使用できるnpmのコマンド一覧、helpを表示する方法など)

# npmの使い方を簡易表示
$ npm

# npmの使い方を詳細表示する
$ npm -l

# npmコマンドのクイックヘルプを表示する
$ npm [command] -h
$ npm install -h   # インストールのヘルプを表示

# npmのインストールバージョンを表示する
$ npm --version
$ npm -v

npm help

npmのヘルプを表示する。

# npmのヘルプを表示
$ npm help

npm config

npmの設定ファイルを管理する。
(設定ファイルの内容を表示したり、追加・削除・変更を行う)

$ npm config

# 以下でも実行が可能
$ npm c

# 設定ファイルの内容一覧を表示する
$ npm config list

# 設定ファイルに内容を追加する
$ npm config set [key] [value]

# 設定ファイルの内容を取得する
$ npm config get [key] [value]

# 設定ファイルの内容を削除する
$ npm config delete [key] [value]

# 設定ファイルの内容を削除する
$ npm config edit

npm ls

インストールされたパッケージを一覧表示する。

# インストールされたパッケージを一覧表示
$ npm list

# 以下でも実行が可能
$ npm la
$ npm li

# 表示する階層はトップレベルのみ(依存するパッケージは表示しない)
$ npm ls --depth=0

npm view

レジストリやパッケージの情報を表示する。

$ npm view [package name]

# 以下でも実行が可能
$ npm info [package name]
$ npm show [package name]
$ npm v [package name]

npm root

npmのルートフォルダを表示する。
具体的には、npm_modulesの絶対フォルダパスを表示する。

$ npm root

npm bin

npmのbinディレクトリを表示する。

$ npm bin

# グローバルモードでnpmのbinディレクトリを表示する
$ npm bin -g
$ npm bin -global

npm explore

インストールされたパッケージのディレクトリを表示する。

# 指定パッケージのディレクトリを表示
$ npm explore [package name]

npm docs

Webブラウザでパッケージのドキュメント/公式サイトを表示する。

# 指定パッケージの公式サイトを表示
$ npm docs [package name]

# 以下でも実行が可能
$ npm home [package name]

npm repo

Webブラウザでパッケージのリポジトリを表示する。

# 指定パッケージのリポジトリを表示
$ npm repo [package name]

npm bugs

Webブラウザでパッケージのバグ/Issueを表示する。

# 指定パッケージのバグ/Issueを表示
$ npm bugs [package name]

3. パッケージの検索・監査

npm search

レジストリからパッケージを検索する。

# 指定パッケージを検索
$ npm search [package name]

# 以下でも実行が可能
$ npm s [package name]
$ npm se [package name]
$ npm find [package name]

npm audit

セキュリティ監査を実行する。
(インストールしたパッケージの脆弱性をスキャンする)

# セキュリティ監査をする
$ npm audit

# セキュリティ監査を実行し、json形式で出力する
$ npm audit --json

# セキュリティ監査を実行して脆弱性のあるバージョンはアップデートをする
$ npm audit fix

# セキュリティ監査を実行して、脆弱性のあるパッケージは互換性のあるバージョンにアップデートする
# 破壊的変更がある場合でも実行するため注意
$ npm audit fix --force

# セキュリティ監査を実行して、脆弱性のあるパッケージは互換性のあるバージョンにアップデートする
# ただし、node_modulesは変更せずpackage-lock.jsonを更新する
$ npm audit fix --package-lock-only

# セキュリティ監査を実行して、脆弱性のあるパッケージは互換性のあるバージョンにアップデートする
# ただし、devDependenciesは除く
$ npm audit fix --only=prod

# セキュリティ監査を実行して、脆弱性のあるパッケージは互換性のあるバージョンにアップデートする
# 監査の修正がどのように行われるかを把握したり、インストール情報をJSON形式で出力したりする
$ npm audit fix --dry-run --json

npm doctor

npmが正常に動作する状態にあるか、使用している環境をチェックする。
チェック内容は以下の通り。

  • Node.jsとgitが実行できること
  • プライマリのnpmレジストリであるregistry.npmjs.comが利用可能できあること
  • node_moduleが存在し、現在のユーザーが書き込み可能であること
$ npm doctor

4. パッケージ開発

npm adduser

指定のレジストリにユーザーアカウントを追加する。

# http://myregistry.example.comレジストリにユーザーアカウントを追加する場合
$ npm adduser --registry=http://myregistry.example.com

npm test

パッケージのテストをする。

$ npm test

npm build

パッケージのビルドをする。

$ pm build [package folder]

npm rebuild

パッケージのリビルドをする。

$ npm rebuild [package folder]

npm publish

パッケージを公開する。

$ npm publish [folder]

npm unpublish

パッケージを非公開にする。
レジストリからパッケージを削除する。

$ npm unpublish [package]

npm version

パッケージのバージョンを更新する、など。

# メッセージを設定してバージョン番号を更新する場合(%sはバージョン番号に置き換えられる)
$ npm version patch -m "Upgrade to %s for reasons"

npm deprecate

パッケージの指定バージョンを非推奨にする。

$ npm deprecate[package@version]

npm dist-tag

ディストリビューションタグを変更する。

# ディストリビューションタグを追加する場合
$ npm dist-tag add[package@version][tag]

npm shrinkwrap

npm-shrinkwrap.jsonファイルを作成する。

$ npm shrinkwrap

npm pack

パッケージからtarballを作成する。

npm pack [package]

npm ping

レジストリにpingする。

$ npm ping [registry]

npm profile

レジストリのプロフィールを変更する。

# プロフィールのプロパティに値を設定する場合
$ npm profile set [property] [value]

npm star / npm unstar

お気に入りのパッケージをマークする / マークをはずす。

# お気に入りのパッケージをマークする
$ npm star[package]

# お気に入りのパッケージのマークをはずす
$ npm unstar [package]

npm stars

お気に入りのパッケージを表示する。

$ npm stars [user]

5. その他

npm completion

コマンドのタブ補完を可能にする。

# Bashに設定する場合
$ npm completion >> ~/.bashrc

# Zshに設定する場合
$ npm completion >> ~/.zshrc

npm xmas

ネタ、クリスマスツリーのアスキーアートを表示する。

$ npm xmas