依存関係解決を早くしたい
npm ci
を使う
CI/CDでnpm ciする際は ~/.npm をキャッシュしよう | DevelopersIO npm ciを使おう あるいはより速く - Qiita
package-lock.json
のみを見て依存関係解決する(npm install
はpackage.json
も見る)npm ci
ではnode_modules
は実行の都度洗い替えされる
更に npm ci --production
とすると devDependency
のインストールが行われなくなる。
--production
や --only=production
はnpm v8ではdeprecatedで、 --omit=dev
を使う。
パッケージをキャッシュしてビルドを早くしたい
npm ci
を使うと、デフォルトでは ~/.npm
にキャッシュが作られる。
CIサーバー上などで ~/.npm
にアクセスできない場合はcacheのpathを変更する。
--cache <path>
オプションをつけるnpm config set cache <path>
でグローバルに設定する
node.js - Is there a way to speedup npm ci using cache? - Stack Overflow https://docs.npmjs.com/cli/v8/commands/npm-cache
キャッシュを使うには、 --prefer-offline
をつける(キャッシュにない場合は取得される)
https://docs.npmjs.com/cli/v8/using-npm/config#prefer-offline
結論
こちらのコマンドでインストールすると次回以降もキャッシュが効くようになる