npm installを実行すると、package-locl.jsonが更新されることがある。 そのため、パッケージのバージョンが知らない間に変わっていて画面が崩れるという不具合が起きてしまった。 普段はnpm ciでパッケージをインストールし、パッケージのバージョンアップや新しいパッケージをインストールする時だけnpm installを使った方が良さそう。
ちなみに、package.jsonの中で"axios": "0.18.0"のようにバージョンを固定していても package-lock.jsonの中では依存パッケージの依存パッケージのバージョンは"^1.0.0"のようになっている。例は以下。
"axios": {
"version": "0.18.0",
"resolved": "http://10.51.67.86:8081/repository/npm-proxy/axios/-/axios-0.18.0.tgz",
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
"requires": {
"follow-redirects": "^1.3.0",
"is-buffer": "^1.1.5"
}
},
だけど、このfollow-redirects等のパッケージのバージョンがnpm installの度に変わるかというとそうではなく、以下のように別の箇所に実際にインストールする バージョンが指定されている。
"follow-redirects": {
"version": "1.7.0",
"resolved": "http://10.51.67.86:8081/repository/npm-proxy/follow-redirects/-/follow-redirects-1.7.0.tgz",
"integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==",
"requires": {
"debug": "^3.2.6"
}
},
このようになっている理由は以下で説明されている。
参考: qiita.com