LoginSignup
9
5

More than 1 year has passed since last update.

npm i とnpm ci の違い

Last updated at Posted at 2022-11-14

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を使用する。

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5