node.js - Haga que `npm install--save` agregue una versión estricta a package.json
version (3)
Cuando ejecuta
npm install --save somepackage
, generalmente agrega algo como esto en package.json:
"dependencies": {
"somepackage": "^2.1.0"
}
Debido a que la versión se antepone con un símbolo de intercalación (^), esto significa que si luego ejecuta
npm install
, podría instalar la versión 2.3.0 en su lugar.
Esto puede ser indeseable por razones bastante obvias.
npm shrinkwrap
es útil, pero realmente no resuelve el problema.
Entonces, tengo varias preguntas:
- Al instalar un paquete, ¿es posible especificar que desea que se configure en una versión específica en package.json (sin cuidado antes del número de versión)?
- Al publicar un paquete en npm, ¿hay alguna forma de evitar el valor predeterminado de incluir el símbolo de intercalación antes de la versión cuando otros desarrolladores instalan su paquete?
Correr:
npm install --save --save-exact my-module@my-specific-version
Agregar una respuesta para que este consejo sea más fácil de ver.
Para especificar por defecto una versión exacta, puede cambiar su configuración de npm con save-exact :
npm config set save-exact true
También puede especificar la versión anterior con una tilde con save-prefix
Y no, no puede obligar al usuario a actualizar a una versión menor o parche, NPM usa semver y es la forma recomendada de publicar paquetes.
Puede cambiar el comportamiento predeterminado utilizando la opción --save-exacto.
// npm
npm install --save --save-exact react
// yarn
yarn add --exact react
Creé una publicación de blog sobre esto si alguien está buscando esto en el futuro.
https://www.dalejefferson.com/blog/how-to-save-exact-npm-package-versions/