npm install --save somepackage
を実行すると、通常次のようなものがpackage.jsonに追加されます。
"dependencies": {
"somepackage": "^2.1.0"
}
バージョンの先頭にキャレット(^)が付いているため、後でnpm install
を実行すると、代わりにバージョン2.3.0がインストールされる可能性があります。これは、明らかな理由で望ましくない場合があります。 npm shrinkwrap
は便利ですが、実際には問題を解決しません。
だから、私はいくつかの質問があります:
デフォルトで正確なバージョンを指定するには、 save-exact を使用してnpm構成を変更できます。
npm config set save-exact true
save-prefix でチルダを使用して先頭に追加するバージョンを指定することもできます
また、ユーザーにマイナーバージョンまたはパッチバージョンへの更新を強制することはできません。NPMは semver を使用します。これはパッケージを公開する推奨方法です。
--save-exactオプションを使用して、デフォルトの動作を変更できます。
// npm
npm install --save --save-exact react
// yarn
yarn add --exact react
将来これを探している人がいる場合は、これに関するブログ記事を作成しました。
https://www.dalejefferson.com/blog/how-to-save-exact-npm-package-versions/