NPMベースのツール(grunt
)を使用してHTML5フロントエンドを構築しています。NPM連続統合のベストプラクティス
私の継続的な統合ビルドプロセスの最初のステップの1つは、npm install
を実行することです。
npm install
は、スローです。ローカルのNPMプロキシキャッシングアーティファクト(SonatypeのNexus 3)を使用しても、まだ4分かかります!
$> time npm install
real 4m17.427s
user 0m0.170s
sys 0m0.290s
私は継続的インテグレーションのための私のいつものベストプラクティスに従っている場合、私は自然のままのSCMリポジトリから開始し、ビルドを実行します。これは、CIビルドが新しくnpm install
を実行し、4分かかることがあることを意味します。
私のビルド時間の割合です。私はビルドがずっと時間がかかることに不満を持っています。
代替方法は、ビルド間にnode_modules
を置くことです。しかし、結果としてビルドが不安定になるという問題がありました。
package.json
から依存関係を削除しても、node_modules
から単純なnpm install
に削除されません。私はまずnpm prune
でこれを回避することができます。
ここでベストプラクティスとは何でしょうか?
あなたはどのバージョンのnpmを使用していますか? npm 5は[ローカルパッケージキャッシュ](https://docs.npmjs.com/cli/cache)を保持します。 – msanford