2151 votos

¿Cómo se actualiza cada dependencia en package.json a la última versión?

He copiado el paquete.json desde otro proyecto y ahora quiere tropezar con todas las dependencias a sus últimas versiones ya que este es un proyecto nuevo y no me importa arreglar algo si se rompe.

¿Cuál es la forma más fácil de hacer esto?

La mejor manera que conozco de ahora es ejecutar npm info express version luego paquete de actualización.json de forma manual para cada uno. Debe haber una mejor manera.

{
  "name": "myproject",
  "description": "my node project",
  "version": "1.0.0",
  "engines": {
    "node": "0.8.4",
    "npm": "1.1.65"
  },
  "private": true,
  "dependencies": {
    "express": "~3.0.3", // how do I get these bumped to latest?
    "mongodb": "~1.2.5",
    "underscore": "~1.4.2",
    "rjs": "~2.9.0",
    "jade": "~0.27.2",
    "async": "~0.1.22"
  }
}

Actualización: he creado un mecanismo nacional de prevención módulo updatehammer que las actualizaciones de todas las dependencias en sus últimas versiones y los guarda en su paquete.json. Solo npm install -g updatehammer y ejecutar updatehammer en la carpeta del proyecto. ¡A disfrutar!

2549voto

josh3736 Puntos 41911

Simplemente cambian cada dependencia de la versión para *, a continuación, ejecute npm update --save.

  "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 contundente martillo de la actualización de las dependencias. Bien, si-como usted dijo-que el proyecto está vacío y nada puede romper.

Por otro lado, si usted está trabajando en una más madura proyecto, es probable que desee para comprobar que no hay cambios importantes en sus dependencias antes de actualizar.

Para ver qué módulos están obsoletos, simplemente ejecute npm outdated. Se mostrará una lista de los instaladas las dependencias que tienen disponibles versiones más recientes.

1077voto

Etienne Puntos 1158

npm-check-updates es una utilidad que se ajusta automáticamente una 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
$ npm-check-updates -u
$ npm install 
 

211voto

laconbass Puntos 2058

Para actualizar una dependencia a su última versión sin tener que abrir manualmente el package.json y cambiarlo, puede ejecutar

 npm install {package-name}@* {save flags?}
 

es decir,

 npm install express@* --save
 

Como referencia, la NGP-instalar


PS: Yo también odio tener que editar manualmente package.json de ese tipo de cosas;)

62voto

Tobiasz Cudnik Puntos 2542

Esto funciona como mecanismo nacional de prevención de 1.3.15.

 "dependencies": {
  "foo": "latest"
}
 

17voto

andxyz Puntos 387

Hace poco he tenido que actualizar varios proyectos que estaban utilizando el mecanismo nacional de prevención y paquete.json para su gruntfile.js magic. El siguiente comando de bash (múltiples líneas de comando) trabajó muy bien para mí:

npm outdated --json --depth=0 | \
jq --ascii-output --monochrome-output '. | keys | .[]' | \
xargs npm install $1 --save-dev

La idea aquí: A la tubería de la npm outdated de salida como json, jq
(jq es un json analizador de línea de comandos/herramienta de consulta)
(observe el uso de --depth argumento para npm outdated)
jq se tira de la salida de abajo a arriba paquete de nivel de sólo el nombre.
finalmente xargs pone cada libraryname de unidad de una en una en un npm install LIBRARYNAME --save-dev de comandos

El de arriba es lo que ha funcionado para mí en una máquina parado: nodo=v0.11.10 osx=10.9.2 npm=1.3.24

esto requiere:
xargs http://en.wikipedia.org/wiki/Xargs (nativo a mi máquina, creo)
y
jq http://stedolan.github.io/jq/ (he instalado con brew install jq)

Nota: sólo guardo la actualización de las bibliotecas de paquetes.json en el interior de la json clave devDependancies mediante el uso de --save-dev, que era un requisito de mis proyectos, muy posible que no la tuya.

Después compruebo que todo lo que es la salsa con un simple

npm outdated --depth=0

También, usted puede controlar el nivel superior instalado versiones de la biblioteca con

npm list --depth=0

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X