Skip to content
Latchkey

CIにおけるnpm ci vs npm install: どちらを使うべきか

CIではほぼ常にnpm installではなくnpm ciを使うべきです - その理由を説明します。

両者は似て見えますが、lockfileと再現性の扱いにおいて異なる挙動を示します。

npm installnpm ci
lockfileの使用更新する場合があるそこから正確にインストールする
node_modules再利用/パッチ適用削除してクリーンに再インストール
再現性なしあり
lockfileのずれで失敗しないする(設計上)

CIではnpm ciを使う

npm ciはクリーンで再現性のあるインストールを提供し、package.jsonとlockfileが一致しない場合には明確に失敗します - これはまさにパイプラインで望まれる挙動です。npm installは依存関係を変更する意図があるローカル開発向けです。

結論

CI: 常にnpm ci(lockfileをコミットした状態で)。ローカルでの依存関係の変更: npm install

関連ガイド