Wenn Sie npm install --save somepackage
ausführen, fügt es normalerweise etwas in package.json hinzu:
"dependencies": {
"somepackage": "^2.1.0"
}
Da der Version ein Caret (^) vorangestellt ist, bedeutet dies, dass bei einer späteren Ausführung von npm install
möglicherweise Version 2.3.0 stattdessen installiert wird. Dies kann aus ziemlich offensichtlichen Gründen unerwünscht sein. npm shrinkwrap
ist nützlich, löst das Problem jedoch nicht wirklich.
Ich habe also einige Fragen:
Um standardmäßig eine genaue Version anzugeben, können Sie Ihre npm-Konfiguration mit save-exact ändern:
npm config set save-exact true
Sie können die vorangestellte Version auch mit einer Tilde mit Save-Prefix angeben.
Nein, Sie können den Benutzer nicht zwingen, ein Update auf eine Minor- oder Patch-Version durchzuführen. NPM verwendet semver . Dies ist der empfohlene Weg, Pakete zu veröffentlichen.
Sie können das Standardverhalten mit der Option --save-exact ändern.
// npm
npm install --save --save-exact react
// yarn
yarn add --exact react
Ich habe einen Blogbeitrag darüber erstellt, wenn jemand in der Zukunft danach sucht.
https://www.dalejefferson.com/blog/wie-to-save-exact-npm-package-versions/
Lauf:
npm install --save --save-exact [email protected]
Eine Antwort hinzufügen, um diesen Ratschlag leichter zu sehen.