⚙️
npmインストールでバージョン固定したい場合はnpm ciを使う
はじめに(結論)
- 開発中は
$ npm install
で環境を整える(package-lock.json
を確定させる) - 確定以後は
$ npm ci
を使用しpackage-lock.json
に基づいてインストールすることで、実行時点によらず同じバージョンのライブラリがインストールできる
npmインストールコマンドの挙動の違い(installとci)
$ npm install
-
package.json
をもとにインストールする -
package-lock.json
が更新される(されてしまう)
$ npm ci
-
package-lock.json
をもとにインストールする👍 -
node_modules
ディレクトリが存在していれば自動的に削除され、完全に新しい環境でインストールが行われる👍 -
package-lock.json
は更新されない👍
参考
devDependencies
を除く
おまけ:開発環境以外では$ npm-ci --omit=dev
のように--omit=dev
を付けることで、devDependencies
(開発環境でのみ必要なライブラリ)を除くことができる。
※Github ActionsなどのCI環境でこのオプションを指定すると静的解析とかができなくなってしまうので注意
Discussion