npm install と npm ci の違い

入門 | 6分 で読める | 2026.07.10

公式ドキュメント

まず結論

npm installは依存関係を追加・更新するため、npm ciはlockfileどおりに再現するためのコマンドです。

コマンド主な用途lockfileとの関係
npm install開発中にパッケージを追加・更新する状況により更新する
npm ciCIや、同じ状態を作り直したい時lockfileと一致することを要求する

依存を追加・更新するnpm installと、lockfileどおりに再作成するnpm ciの比較図

npm install

npm install zod

パッケージを追加し、package.jsonpackage-lock.jsonを更新します。既にある依存関係を入れるだけなら、指定なしのnpm installも使えます。

npm ci

npm ci

npm ciは既存のnode_modulesを削除してから、package-lock.jsonどおりにインストールします。package.jsonとlockfileが食い違っていると失敗します。これはCIで差分を早く見つけるために役立ちます。

使い分け

  • 新しいライブラリを加える:npm install パッケージ名
  • 開発中の依存を通常どおり入れる:npm install
  • CIまたはlockfileどおりに作り直す:npm ci

プロジェクトがpnpmやYarnを採用しているなら、npmコマンドを混ぜず、そのプロジェクトのコマンドを使います。

まとめ

依存関係を変更する作業と、同じ依存関係を再現する作業を分けると、開発環境とCIの違いを減らせます。

参考リソース

次に読む記事

← 一覧に戻る
PR
PR
PR
PR