夢のかけら

Goエンジニアの技術ブログ

npm installとnpm ciの違い

f:id:lampler:20211023102547p:plain

npm install

npmi ipackage.jsonを見てライブラリをインストールする。pacakge.jsonのバージョン指定には幅があるため、npm iする時期によってはpackage.json.lockを書き換えてしまう。 つまり完全に同じ開発環境を再現できない(可能性がある)。これはnpm iの大きな問題点と言える。

npm ci

一方でnpm cipacage.json.lockからライブラリをインストールする。(これがnpm iとの最大の違い)

具体的には↓の3つをやっている。

  1. node_modules ディレクトリの削除
  2. package-lock.json と package.json の整合性のチェック。違ったらエラーを吐く。
  3. package-lock.json から node_modules を再現

npm iではなくnpm ciを使うことで完全に同じバージョンのライブラリをインストールすることができる。 git clone 直後などはnpm ciの方が良さそうだ。