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 i」と「npm ci」の違いについて簡単にまとめ

Posted at

はじめに

Node.jsの世界で開発をしていると、避けて通れないのがnpm(Node Package Manager)です。npmは、JavaScriptのパッケージ管理ツールとして広く使われており、プロジェクトの依存関係を管理する上で欠かせない存在です。
特にnpm installコマンドは、エンジニアであれば馴染み深いコマンドかと思います。
今回はnpm install(npm i)コマンドと似ているnpm ciコマンドについて記事にしました。

npm iとは

npm inpm installの略称で、Node.jsプロジェクトの依存関係をインストールするためのコマンドです。
npm iは、npm installの略称として機能します。
また、npm i <パッケージ名>のように特定のパッケージをインストールすることも可能です。

$ npm i

コマンド実行をすると、package.jsonファイルを読み込み、必要なパッケージをnode_modulesディレクトリにインストールします。

npm ciとは

npm cinpm clean-installの略で、こちらも同じくNode.jsプロジェクトの依存関係をインストールするためのコマンドです。

$ npm ci

こちらはnpm version 5.7.0で導入され、プロジェクトの依存関係をより厳密に管理するために誕生したそうです。
また、npm ciは通常、npm iよりも高速に動作します。

npm inpm ciの違いは?

npm ipackage.jsonの内容に基づいて依存関係を解決するのに対し、
npm ciは、package-lock.jsonに厳密に従います。
つまりnpm ciは、開発環境間での一貫性を保つのに役立つコマンドとなります。

特に、実務やチーム開発の場面ではnpm ciは重宝します。
npm cipackage-lock.jsonを厳密に遵守するため、全てのチームメンバーが同一の依存関係バージョンを使用することを保証します。
また、package.jsonpackage-lock.jsonの一致を要求するため、意図しないバージョンアップによる競合を防ぐことができます。
そのため、「自分の環境では動くのに、他の人の環境では動かない」といった問題を大幅に削減することができます。
不一致が発生した場合にエラーを吐いてくれるのも大きいですね。

npm ERR! The package-lock.json file was created with an old version of npm,
npm ERR! so supplemental metadata must be fetched from the registry.
npm ERR! 
npm ERR! sha512-mismatch for https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz
npm ERR! Fetched package: sha512-3Uh8m0vGmTPIUiSiP2pPZOzXc+KSfkTB3GUEWAzwX5VcPCXXrA8Ung2KAmQkVJ53ZrWVPuPkPR1YKPzrHNZdA==
npm ERR! Manifest: sha512-1/AbfjdKhHUd5ZQ7YRWKZ2rCRYWtm7EGZFn3Pk3h7OXS7Q3TuGKfnC/V9N5OCt6M0z28Pzp2Oj7NGEWj8QwLg==

npm ciのデメリットは?

より厳密にインストールを行う為、柔軟性の欠如や、開発中の依存関係管理の難しさなどが挙げられるかと思います。
個人開発のシーンでは使用する機会は少ないかと思います。
また、npm ciは個別のパッケージをインストールすることはできません。(常にプロジェクト全体をインストールします。)

まとめ

今回は類似コマンドのnpm inpm ciについて簡単にまとめました。
もしnpmの依存関係でエラーが発生した際には、ぜひnpm ciを試してみてはいかがでしょうか。

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?