本番環境に npm ci を使ってパッケージをインストールする
一段落説明
依存関係をロックする に従って依存関係をロックしましたが、本番環境で使用されているパッケージのバージョンが正確であることを確認する必要があります。
パッケージのインストールに npm ci
を使うと、まさにそれ以上のことができます。
package.json
とpackage-lock.json
が一致していない (一致しているはずの) 場合や、ロックファイルがない場合は失敗します。- もし
node_modules
フォルダが存在する場合は、インストールする前に自動的に削除される - より速くなります! リリースブログ記事 によると、2倍近く速くなっています。
これはどんな時に役立つのでしょうか?
CI 環境や QA が、後に本番環境に送るものと全く同じパッ ケージバージョンでソフトウェアをテストすることが保証されています。 また、何らかの理由で cli コマンドではなく、直接 package.json を編集して手動で package.json を変更した場合、package.json と package-lock.json の間にギャップが生じてエラーが発生します。
npm が言っていること
このコマンドは npm-install と似ていますが、テストプラットフォームや継続的インテグレーション、デプロイメントなどの自動化された環境や、依存関係をクリーンインストールしていることを確認したい状況で使用することを目的としています。
このコマンドは、継続的インテグレーション/継続的デプロイメントプロセスのためのビルドのパフォーマンスと信頼性を大幅に改善し、ワークフローで CI/CD を使用している開発者に一貫性のある高速な体験を提供します。
npmjs: dependencies と devDepencies
"dependencies": 本番環境のアプリケーションに必要なパッケージ "devDependencies": ローカルでの開発やテストにのみ必要なパッケージ