Node.js のマイナーバージョンと npm のメジャーバージョンの関係について気になったことをツイートした。
https://twitter.com/bouzuya/status/1207172281933299712
Node.js 8.0.0 では npm 5.0.0 (https://nodejs.org/en/blog/release/v8.0.0/) で Node.js 8.17.0 では npm 6.13.4 (https://nodejs.org/en/blog/release/v8.17.0/) なのは大丈夫なのか……という話。
npm はわりとバージョン間で動作が変わっているイメージがある。しばしば package-lock.json に変な更新が入るイメージ。ただ semver どおりならメジャーバージョンを変えないなら互換性があるはずでそういう変更を入れていないはず。
ただ↑ではメジャバージョンを変えているのでどうなのかと。
この常に最新版を使う対応が推奨されるなら npm i -g npm
を CI では実行すべきなのかとか。それ↑に書いたような非互換の挙動で微妙だなとか……。
ちなみに 8.16.0 -> 8.17.0 で 5.x -> 6.x になったわけではなさそうなのでこのバージョンに対しての話ではない。たまたま気がついたので。
体調が悪い。半日寝ていた。