1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

チーム開発で差が出る!npm install と npm ci の正しい使い分け

Posted at

はじめに

Node.jsプロジェクトの依存関係をインストールする際に、よく使うコマンドが npm install(または略して npm i)です。

しかし、もうひとつの選択肢である npm ci をご存知でしょうか?

この記事では、npm install と npm ci の違いと、それぞれの使い分けポイントを分かりやすく解説します。

なぜ npm ci が重要なの?

CI(継続的インテグレーション)環境では、「昨日は成功したのに今日は失敗した」という事故を防ぐため、毎回まっさらな状態で、完全に同じ依存環境を構築する必要があります。

npm install だと、微妙に異なるバージョンが入ってしまうことがありますが、npm ci を使えば、確実に同じ状態でビルドが再現できます。

npm install とは?

npm install

✅ 主な特徴

  • package.json をもとに依存関係をインストール
  • package-lock.json があれば参照されるが、厳密には一致しない
  • 開発中に使うことが多い

📌 具体的な動作

  • node_modules がなければ新しく作成
  • 依存パッケージのバージョンは package.json の範囲(^1.0.0 など)で柔軟にインストール
  • package-lock.json は更新される可能性がある

npm ci とは?

npm ci

✅ 主な特徴

  • ci は “clean install” の略
  • package-lock.json厳密に一致するようにインストール
  • CI/CD環境や本番ビルド向け

📌 具体的な動作

  • まず node_modules完全に削除する
  • package-lock.json を厳密に再現
  • package.jsonpackage-lock.json不一致があるとエラー

違いを比較表で整理

項目 npm install npm ci
用途 開発中に便利 本番・CI環境向け
node_modules 存在すれば再利用 必ず削除して再構築
バージョンの柔軟性 ^1.0.01.1.0 もOK lockファイルと完全一致
lockファイルの更新 されることがある 一切更新されない
初回インストール速度 やや遅い 高速
再現性 低い 非常に高い

使い分け

シーン 使うべきコマンド
ローカル開発 npm install
初期セットアップや依存追加 npm install
CI/CD パイプライン npm ci
本番環境デプロイ時 npm ci
lockファイルに忠実な環境再現が必要なとき npm ci

おわりに

依存関係の管理はプロジェクトの安定性に直結します。
今後は、ただなんとなく npm install を使うのではなく、 「目的に応じたコマンド選び」 を意識してみてください!

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?