Wenn Sie npm install --save somepackage
laufen, ist es in der Regel so etwas wie dies in package.json fügt hinzu:Make `npm installieren --save` eine strenge Version in den package.json
"dependencies": {
"somepackage": "^2.1.0"
}
Da die Version mit einem caret vorangestellt (^), wenn Sie später npm install
ausführen, wird stattdessen Version 2.3.0 installiert. Dies kann aus offensichtlichen Gründen unerwünscht sein. npm shrinkwrap
ist nützlich, aber löst das Problem nicht wirklich.
Also, ich habe einige Fragen:
- Wenn ein Paket installiert, ist es möglich, festzulegen, dass Sie es auf eine bestimmte Version in package.json gesetzt werden sollen (keine caret vor der Versionsnummer) ?
- Gibt es bei der Veröffentlichung eines Pakets in npm eine Möglichkeit, den Standard zu verhindern, dass das Caret vor der Version eingeschlossen wird, wenn andere Entwickler Ihr Paket installieren?
npm config set save-exact true
Sie können auch mit save-prefix
Und die prepend Version mit einer Tilde angeben:
Wenn Sie nur diese für ein bestimmtes Paket tun möchten, können Sie fügen Sie '--save-exact' auf der Kommandozeile. ZB 'npm install --save --save-exact somepackage'. – gilly3
In Verbindung stehende https://www.npmjs.com/package/strict-version –
dies nur speichern Sie nur die genauen Versionen Ihrer 'Top-Level-Packges" - diejenigen, die in 'package.json' angegeben, aber nicht für alle arbeiten Pakete, die "Top-Level-Pakete" sind, hängt davon ab. https://yarnpkg.com/ Lösen dieses Problem mit 'gam.lock' Datei, so dass Sie immer genaue Versionen aller Ihrer Pakete haben. – Kuncevic