node.js npm version package.json

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:

  1. 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)?
  2. 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.