npm i(npm install)
プロジェクトにパッケージをインストールするためのコマンド。
npm iは大きく2つの方法で動作する。
1. 特定のパッケージをインストールする際に使用
$ npm i 'package-name'
特定のパッケージの名前を直接入れてインストールする。
2. package.json
に明示されているすべてのパッケージをインストールする際に使用
$ npm i
特定のパッケージ名を指定しなかった場合は、package.json
に明示されているすべてのパッケージをインストールし、node_modules
に保存しておく。
上記の方法の共通点
上記の方法の両方とも、package-lock.json
の存在をまず確認し、依存しているパッケージ情報を把握してからnode-modules
にインストールする。
また、node-modules
やpackage.json
に変化があれば、package-lock.json
を更新する。
npm ci(npm clean install)
$ npm ci
npm ci
は、package-lock.json
に明示されているパッケージ情報をもとに、より正確なバージョンのパッケージをインストールする。
これにより、一つのプロジェクトを複数の開発者が開発する際に、同じバージョンのパッケージをインストールすることができる。
つまり、インストールする際にはpackage-lock.json
が必要であり、npm i
とは違って、package-lock.json
を修正することはしない。
また、npm ci
は、node-modules
が存在している場合、既存のnode-modules
を削除してインストールする。
その際にpackage-lock.json
とpackage-lock.json
のバージョンがマッチングされないと、エラーが出る。
使用方法
新しいパッケージをインストールする時
$ npm i 'package-name'
を使用して必要なパッケージをインストールする。
レポジトリのプロジェクトをローカルで設定する時
他の開発者と同じ開発環境を構築するため、npm ci
をもってpackage-lock.json
をベースにパッケージをインストールする。
CI/CD環境構築の時
package-lock.json
を修正せず、ビルドをおこなうため、npm ci
を使用する。