npm i とnpm ci の違い

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-modulespackage.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.jsonpackage-lock.jsonのバージョンがマッチングされないと、エラーが出る。

使用方法

新しいパッケージをインストールする時

$ npm i 'package-name'を使用して必要なパッケージをインストールする。

レポジトリのプロジェクトをローカルで設定する時

他の開発者と同じ開発環境を構築するため、npm ciをもってpackage-lock.jsonをベースにパッケージをインストールする。

CI/CD環境構築の時

package-lock.jsonを修正せず、ビルドをおこなうため、npm ciを使用する。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です