依存関係解決を早くしたい
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
結論
こちらのコマンドでインストールすると次回以降もキャッシュが効くようになる
npm ci --omit=dev --prefer-offline --cache /path/to/npm_cache/