Solución:
Parece que npm-check-updates es la única forma de que esto suceda ahora.
npm i -g npm-check-updates
ncu -u
npm install
En npm <3.11:
Simplemente cambie la versión de cada dependencia a *
, entonces corre npm update --save
. (Nota: roto en versiones recientes (3.11) de npm).
Antes:
"dependencies": {
"express": "*",
"mongodb": "*",
"underscore": "*",
"rjs": "*",
"jade": "*",
"async": "*"
}
Después:
"dependencies": {
"express": "~3.2.0",
"mongodb": "~1.2.14",
"underscore": "~1.4.4",
"rjs": "~2.10.0",
"jade": "~0.29.0",
"async": "~0.2.7"
}
Por supuesto, este es el martillo contundente de actualizar dependencias. Está bien si, como dijiste, el proyecto está vacío y nada puede romperse.
Por otro lado, si está trabajando en un proyecto más maduro, probablemente desee verificar que no haya cambios importantes en sus dependencias antes de actualizar.
Para ver qué módulos están desactualizados, simplemente ejecute npm outdated
. Enumerará todas las dependencias instaladas que tengan versiones más nuevas disponibles.
npm-check-updates
es una utilidad que ajusta automáticamente un package.json con la última versión de todas las dependencias
ver https://www.npmjs.org/package/npm-check-updates
$ npm install -g npm-check-updates
$ ncu -u
$ npm install
[EDIT] Una forma un poco menos intrusiva (evita una instalación global) de hacer esto si tiene una versión moderna de npm
es:
$ npx npm-check-updates -u
$ npm install
Actualizado para npm v2 +
npm 2+ (nodo 0.12+):
npm outdated
npm update
git commit package-lock.json
Npm antiguo (alrededor de 2014):
npm install -g npm-check-updates
npm-check-updates
npm shrinkwrap
git commit package-lock.json
Asegúrese de envolver sus departamentos, o puede terminar con un proyecto muerto. Saqué un proyecto el otro día y no funcionó porque mis departamentos estaban desactualizados / actualizados / un desastre. Si lo hubiera envuelto, npm habría instalado exactamente lo que necesitaba.
Detalles
Para los curiosos que lleguen tan lejos, esto es lo que recomiendo:
Usar npm-check-updates
o npm outdated
para sugerir las últimas versiones.
# `outdated` is part of newer npm versions (2+)
$ npm outdated
# If you agree, update.
$ npm update
# OR
# Install and use the `npm-check-updates` package.
$ npm install -g npm-check-updates
# Then check your project
$ npm-check-updates
# If you agree, update package.json.
$ npm-check-updates -u
### Luego haz una instalación limpia (sin el rm recibí algunas advertencias de dependencia)
$ rm -rf node_modules
$ npm install
Por último, guarde las versiones exactas para npm-shrinkwrap.json
con npm shrinkwrap
$ rm npm-shrinkwrap.json
$ npm shrinkwrap
Ahora, npm install
ahora usará versiones exactas en npm-shrinkwrap.json
Si miras npm-shrinkwrap.json
en git, todas las instalaciones usarán exactamente las mismas versiones.
Esta es una forma de pasar del desarrollo (todas las actualizaciones, todo el tiempo) a la producción (nadie toca nada).
-
npm desactualizado
-
npm-check-updates
-
npm shrinkwrap
ps Yarn está enviando su lista de paquetes a Facebook.