• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

1.2K
Vistas
¿Cómo actualizar cada dependencia en package.json a la última versión?

Copié package.json de otro proyecto y ahora quiero cambiar 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 es ejecutar npm info express version luego actualizar cada dependencia en package.json manualmente. Tiene que 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" } }

Para soluciones específicas de Yarn , consulte este hilo de desbordamiento de pila .

about 3 years ago · Santiago Trujillo
34 Respuestas
Responde la pregunta

0

Esta función se introdujo en npm v5 . actualice a npm usando npm install -g npm@latest y

para actualizar package.json

  1. elimine /node_modules y package-lock.json (if you have any)

  2. ejecutar npm update . esto actualizará las dependencias package.json a la última versión, según semver .

para actualizar a la última versión. puedes ir con npm-check-updates

about 3 years ago · Santiago Trujillo Denunciar

0

Si está utilizando yarn , yarn upgrade-interactive es una herramienta realmente elegante que puede permitirle ver sus dependencias obsoletas y luego seleccionar cuáles desea actualizar.

Más razones para usar Yarn sobre npm . je.

about 3 years ago · Santiago Trujillo Denunciar

0

Intente seguir el comando si usa npm 5 y el nodo 8

actualización npm --guardar

about 3 years ago · Santiago Trujillo Denunciar

0

Me gusta mucho cómo funciona npm-upgrade . Es una utilidad de línea de comando simple que revisa todas sus dependencias y le permite ver la versión actual en comparación con la última versión y actualizar si lo desea.

Aquí hay una captura de pantalla de lo que sucede después de ejecutar npm-upgrade en la raíz de su proyecto (junto al archivo package.json ):

ejemplo de actualización de npm

Para cada dependencia, puede optar por actualizar, ignorar, ver el registro de cambios o finalizar el proceso. Me ha funcionado muy bien hasta ahora.

EDITAR: para que quede claro, este es un paquete de terceros que debe instalarse antes de que funcione el comando. No viene con npm en sí:

 npm install -g npm-upgrade

Luego, desde la raíz de un proyecto que tiene un archivo package.json:

 npm-upgrade
about 3 years ago · Santiago Trujillo Denunciar

0

Uso npm-check para lograr esto.

 npm i -g npm npm-check npm-check -ug #to update globals npm-check -u #to update locals

ingrese la descripción de la imagen aquí

Otra lista de comandos útil que mantendrá los números de versión exactos en package.json

 npm cache clean rm -rf node_modules/ npm i -g npm npm-check-updates ncu -g #update globals ncu -ua #update locals npm i
about 3 years ago · Santiago Trujillo Denunciar

0

Si está utilizando Visual Studio Code como su IDE, esta es una pequeña y divertida extensión para hacer que la actualización de package.json sea un proceso de un solo clic.

Versión Lente

ingrese la descripción de la imagen aquí

Repositorio de GitLab

about 3 years ago · Santiago Trujillo Denunciar

0

Greenkeeper si está usando Github. https://greenkeeper.io/

Es una integración de Github e increíblemente fácil de configurar. Cuando está instalado, crea automáticamente solicitudes de incorporación de cambios en los repositorios que especifique (o todos si lo desea) y mantiene su código siempre actualizado, sin obligarlo a hacer nada manualmente. Luego, los PR deben desencadenar una compilación en un servicio de CI y, dependiendo de una verificación exitosa o fallida, puede seguir averiguando qué está desencadenando el problema o, cuando CI pasa, simplemente fusionar el PR.

guardián PR 1 guardián PR 2

En la parte inferior, puede ver que la primera compilación falló al principio y después de una confirmación ("actualizar al nodo v6.9"), las pruebas pasan, por lo que finalmente pude fusionar el PR. Viene con una gran cantidad de emoji, también.

Otra alternativa sería https://dependencyci.com/ , sin embargo, no la probé intensamente. Después de un primer vistazo, Greenkeeper se ve mejor en general en mi opinión y tiene una mejor integración.

about 3 years ago · Santiago Trujillo Denunciar

0

  • npm desactualizado
  • actualización de npm

Debería obtener las últimas versiones deseadas compatibles con su aplicación. Pero no las últimas versiones.

about 3 years ago · Santiago Trujillo Denunciar

0

Solución sin paquetes adicionales

Cambie la versión de cada dependencia a * :

 "dependencies": { "react": "*", "react-google-maps": "*" }

Luego ejecute npm update --save .

¿Algunos de sus paquetes se actualizaron, pero otros no?

 "dependencies": { "react": "^15.0.1", "react-google-maps": "*" }

Esta es la parte complicada, significa que su versión local de "reaccionar" era más baja que la más nueva. En este caso, npm descargó y actualizó el paquete "reaccionar". Sin embargo, su versión local de "react-google-maps" es la misma que la más nueva.

Si aún desea "actualizar" sin cambios * , debe eliminar estos módulos de la carpeta node_modules .

por ejemplo, elimine node_modules/react-google-maps .

Finalmente ejecute de nuevo npm update --save .

 "dependencies": { "react": "^15.0.1", "react-google-maps": "^4.10.1" }

No olvide ejecutar npm update --save-dev si desea actualizar las dependencias de desarrollo.

about 3 years ago · Santiago Trujillo Denunciar

0

Updtr!

Basado en npm obsoleto, updtr instala la última versión y ejecuta la prueba npm para cada dependencia. Si la prueba tiene éxito, updtr guarda el nuevo número de versión en su paquete.json. Sin embargo, si la prueba falla, updtr revierte sus cambios.

https://github.com/peerigon/updtr

about 3 years ago · Santiago Trujillo Denunciar

0

Aquí hay una expresión regular básica para hacer coincidir los números de versión semántica para que pueda reemplazarlos rápidamente con un asterisco.

Versión semántica Regex

 ([>|<|=|~|^|\s])*?(\d+\.)?(\d+\.)?(\*|\d+)

Cómo utilizar

Seleccione las versiones del paquete que desea reemplazar en el archivo JSON.

captura de pantalla: seleccione el texto que desea reemplazar

Ingrese la expresión regular anterior y verifique que coincida con el texto correcto.

captura de pantalla: ingrese la expresión regular semver arriba

Reemplace todas las coincidencias con un asterisco.

captura de pantalla: reemplace las versiones del paquete con un asterisco

Ejecute npm update --save

about 3 years ago · Santiago Trujillo Denunciar

0

Parece que npm-check-updates es la única forma de hacer 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 * , luego ejecute 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 sin filo de la actualización de 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á las dependencias instaladas que tienen versiones más recientes disponibles.

Para una solución específica de Yarn , consulte esta respuesta de StackOverflow .

about 3 years ago · Santiago Trujillo Denunciar

0

npm-check-updates es una utilidad que ajusta automáticamente un paquete.json con la última versión de todas las dependencias

consulte https://www.npmjs.org/package/npm-check-updates

 $ npm install -g npm-check-updates $ ncu -u $ npm install

[EDITAR] 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
about 3 years ago · Santiago Trujillo Denunciar

0

Esto funciona a partir de npm 1.3.15.

 "dependencies": { "foo": "latest" }
about 3 years ago · Santiago Trujillo Denunciar

0

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 reducir sus deps, o puede terminar con un proyecto muerto. Saqué un proyecto el otro día y no funcionaba 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 llegan tan lejos, esto es lo que recomiendo:

Use 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 haga una instalación limpia (sin el rm, recibí algunas advertencias de dependencia)

 $ rm -rf node_modules $ npm install

Por último, guarde las versiones exactas en npm-shrinkwrap.json con npm shrinkwrap

 $ rm npm-shrinkwrap.json $ npm shrinkwrap

Ahora, npm install ahora usará versiones exactas en npm-shrinkwrap.json

Si 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-verificar actualizaciones

  • envoltura npm

ps Yarn está enviando su lista de paquetes a Facebook .

about 3 years ago · Santiago Trujillo Denunciar

0

  1. Use * como la versión para las últimas versiones, incluida la inestable
  2. Use la definición de versión latest para la última versión estable
  3. Modifique el paquete.json con exactamente el último número de versión estable usando LatestStablePackages

Aquí hay un ejemplo:

 "dependencies": { "express": "latest" // using the latest STABLE version , "node-gyp": "latest" , "jade": "latest" , "mongoose": "*" // using the newest version, may involve the unstable releases , "cookie-parser": "latest" , "express-session": "latest" , "body-parser": "latest" , "nodemailer":"latest" , "validator": "latest" , "bcrypt": "latest" , "formidable": "latest" , "path": "latest" , "fs-extra": "latest" , "moment": "latest" , "express-device": "latest" },
about 3 years ago · Santiago Trujillo Denunciar

0

La única advertencia que he encontrado con la mejor respuesta anterior es que actualiza los módulos a la última versión. Esto significa que podría actualizarse a una versión alfa inestable.

Usaría esa utilidad npm-check-updates. Mi grupo usó esta herramienta y funcionó de manera efectiva al instalar las actualizaciones estables.

Como Etienne dijo anteriormente: instale y ejecute con esto:

 $ npm install -g npm-check-updates $ npm-check-updates -u $ npm install
about 3 years ago · Santiago Trujillo Denunciar

0

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, npm-install


Actualización : las versiones recientes pueden necesitar la última bandera en su lugar, es decir, npm install express@latest


Como señaló el usuario Vespakoen en una edición rechazada, también es posible actualizar varios paquetes a la vez de esta manera:

 npm install --save package-nave@* other-package@* whatever-thing@*

También aporta una sola línea para el caparazón basada en npm outdated . Vea la edición para el código y la explicación.


PD: También odio tener que editar manualmente package.json para cosas como esa;)

about 3 years ago · Santiago Trujillo Denunciar

0

Recientemente tuve que actualizar varios proyectos que usaban npm y package.json para su magia gruntfile.js. El siguiente comando bash (comando multilínea) funcionó bien para mí:

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

La idea aquí: canalizar la salida npm outdated como json, a jq
(jq es una herramienta de consulta / analizador de línea de comando json)
(Observe el uso del argumento --depth para npm outdated )
jq reducirá la salida solo al nombre del paquete de nivel superior.
finalmente, xargs coloca cada LIBRARYNAME uno a la vez en un npm install LIBRARYNAME --save-dev

Lo anterior es lo que me funcionó en una máquina en ejecución: node=v0.11.10 osx=10.9.2 npm=1.3.24

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

Nota: Solo guardo las bibliotecas actualizadas en package.json dentro de las devDependancies de la clave json usando --save-dev , ese fue un requisito de mis proyectos, muy posiblemente no el tuyo.

Después compruebo que todo esté en salsa con un simple

 npm outdated --depth=0

Además, puede verificar las versiones actuales de la biblioteca instalada de nivel superior con

 npm list --depth=0
about 3 years ago · Santiago Trujillo Denunciar

0

alternativa es

 "dependencies":{ "foo" : ">=1.4.5" }

cada vez que usa npm update, se actualiza automáticamente a la última versión. Para obtener más sintaxis de versión, puede consultar aquí: https://www.npmjs.org/doc/misc/semver.html

about 3 years ago · Santiago Trujillo Denunciar

0

Los comandos anteriores no son seguros porque puede romper su módulo al cambiar de versión. En cambio, recomiendo lo siguiente

  • Establezca la versión real de los módulos de nodo actuales en package.json usando el comando npm shrinkwrap .
  • Actualice cada dependencia a la última versión SI NO ROMPE SUS PRUEBAS usando la herramienta de línea de comandos https://github.com/bahmutov/next-update
npm install -g próxima actualización
// de tu paquete
próxima actualización
about 3 years ago · Santiago Trujillo Denunciar

0

Si está buscando una solución más fácil que no implique la instalación de paquetes npm, verifique updatepackagejson.com

actualizarpaquetejson.com

about 3 years ago · Santiago Trujillo Denunciar

0

Actualización segura

  1. Use 'npm obsoleto' para descubrir dependencias que están desactualizadas.

  2. Use 'npm update' para realizar actualizaciones de dependencia seguras.

  3. Use 'npm install @latest' para actualizar a la última versión principal de un paquete.

Actualización de última hora

  1. Use 'npx npm-check-updates -u'.

  2. 'npm install' para actualizar todas las dependencias a sus últimas versiones principales.

about 3 years ago · Santiago Trujillo Denunciar

0

Si no desea instalar npm-check-updates globales, simplemente puede ejecutar eso:

 node -e "const pk = JSON.parse(require('fs').readFileSync('package.json', 'utf-8'));require('child_process').spawn('npm', ['install', ...Object.keys(Object.assign({},pk.dependencies, pk.devDependencies)).map(a=>a+'@latest')]).stdout.on('data', d=>console.log(d.toString()))"
about 3 years ago · Santiago Trujillo Denunciar

0

Encontré otra solución para la versión reciente de NPM. Lo que quiero hacer es reemplazar todas las dependencias "*" con el último número de versión explícito. Ninguno de los métodos discutidos me ha funcionado.

Lo que hice:

  1. Reemplace todos los "*" con "^0.0.0"
  2. Ejecute npm-check-updates -u

Todo en package.json ahora está actualizado a la última versión.

about 3 years ago · Santiago Trujillo Denunciar

0

La forma más fácil de hacer esto a partir de hoy es usar pnpm en lugar de npm y simplemente escribir:

pnpm update --latest

https://github.com/pnpm/pnpm/releases/tag/v3.2.0

about 3 years ago · Santiago Trujillo Denunciar

0

A partir de la versión 5.2.0 de npm, hay una manera de ejecutar esto en una sola línea sin instalar ningún paquete adicional en su registro global de npm ni localmente en su aplicación. Esto se puede hacer aprovechando la nueva utilidad npx que se incluye con npm. ( Haga clic aquí para obtener más información).

Ejecute el siguiente comando en la raíz de su proyecto:

 npx npm-check-updates -u && npm i
about 3 years ago · Santiago Trujillo Denunciar

0

Si desea utilizar un enfoque suave a través de una hermosa (para terminal) interfaz de informes interactivos, le sugiero que use npm-check .

Es menos complicado y le brinda un mayor conocimiento y control de las actualizaciones de dependencia.

Para darle una idea de lo que le espera, aquí hay una captura de pantalla (extraída de la página de git para npm-check):

ingrese la descripción de la imagen aquí

about 3 years ago · Santiago Trujillo Denunciar

0

Es posible una actualización automática con NPM-script:

 { "_cmd-update-modules": "npm run devops-update-modules", "scripts": { "create-global-node-modules-folder": "if not exist \"%appdata%\\npm\\node_modules\" mkdir %appdata%\\npm\\node_modules", "npm-ig": "npm i npm@latest -g", "npm-check-ig": "npm i npm-check@latest -g", "eslint-ig": "npm i eslint@latest -g", "npm-check-ul": "npm-check \"C:\\Program Files\\nodejs\\node_modules\\npm\" -y", "npm-check-ug": "npm-check \"C:\\Program Files\\nodejs\\node_modules\\npm\" -y -g", "npm-deep-update-l": "npm update --depth 9999 --dev", "npm-deep-update-g": "npm update --depth 9999 --dev -g", "npm-cache-clear": "npm cache clear --force", "devops-update-modules": "npm run create-global-node-modules-folder && npm run npm-ig && npm run npm-check-ig && npm run eslint-ig && npm run npm-check-ul && npm run npm-check-ug && npm run npm-deep-update-l && npm run npm-deep-update-g && npm run npm-cache-clear" } }

Para más detalles y manual paso a paso: https://stackoverflow.com/a/34295664

about 3 years ago · Santiago Trujillo Denunciar

0

Si usa yarn, el siguiente comando actualiza todos los paquetes a su última versión:

yarn upgrade --latest

De sus documentos :

El comando upgrade --latest actualiza los paquetes de la misma manera que el comando upgrade, pero ignora el rango de versiones especificado en package.json. En su lugar, se utilizará la versión especificada por la etiqueta más reciente (potencialmente actualizando los paquetes en las versiones principales).

about 3 years ago · Santiago Trujillo Denunciar

0

Resolví esto viendo las instrucciones de https://github.com/tjunnone/npm-check-updates

 $ npm install -g npm-check-updates $ ncu $ ncu -u # to update all the dependencies to latest $ ncu -u "specific module name" #in case you want to update specific dependencies to latest
about 3 years ago · Santiago Trujillo Denunciar

0

El siguiente código (que fue aceptado) me escribió algo así como "se tarda demasiado, bla, bla" y no hizo nada. Probablemente usar la bandera global fue el problema, no sé.

 npm i -g npm-check-updates ncu -u npm install

Decidí usar mi editor de texto y seguir un enfoque semimanual en su lugar.

Copié una lista como esta (mucho más larga) de las dependencias de desarrollo de mi package.json al editor de texto notepad++:

 "browserify": "10.2.6", "expect.js": "^0.3.1", "karma": "^0.13.22", "karma-browserify": "^5.2.0",

Establecí el modo de búsqueda en expresión regular, usé el patrón ^\s*"([^"]+)".*$ para obtener el nombre del paquete y lo reemplacé con npm uninstall \1 --save-dev \nnpm install \1 --save-dev . Hice clic en "reemplazar todo". El resultado fue este:

 npm uninstall browserify --save-dev npm install browserify --save-dev npm uninstall expect.js --save-dev npm install expect.js --save-dev npm uninstall karma --save-dev npm install karma --save-dev npm uninstall karma-browserify --save-dev npm install karma-browserify --save-dev

Lo copié de nuevo a bash y presioné enter. Todo fue actualizado y funcionando bien. Eso es todo.

 "browserify": "^16.1.0", "expect.js": "^0.3.1", "karma": "^2.0.0", "karma-browserify": "^5.2.0",

No creo que sea un gran problema, ya que solo tiene que hacerlo de vez en cuando, pero puede escribir fácilmente un script que analice el package.json y actualice sus paquetes. Creo que es mejor así, porque puedes editar tu lista si necesitas algo especial, por ejemplo, mantener la versión actual de una biblioteca.

about 3 years ago · Santiago Trujillo Denunciar

0

Para ver qué paquetes tienen versiones más recientes disponibles, utilice el siguiente comando:

 npm outdated

para actualizar solo una dependencia solo use el siguiente comando:

 npm install yourPackage@latest

Por ejemplo:

Mi archivo package.json tiene dependencia:

 "@progress/kendo-angular-dateinputs": "^1.3.1",

entonces debo escribir:

 npm install @progress/kendo-angular-dateinputs@latest

¿Qué significa --save-dev ?

 npm install @progress/kendo-angular-dateinputs@latest --save-dev

Como dice la documentación de instalación de npm:

-D, --save-dev: el paquete aparecerá en sus dependencias de desarrollo.

about 3 years ago · Santiago Trujillo Denunciar

0

Comandos que tuve que usar para actualizar package.json para NPM 3.10.10 :

 npm install -g npm-check-updates ncu -a npm install

Antecedentes:

Estaba usando el último comando de @josh3736 pero mi package.json no se actualizó. Luego noté el texto de la descripción al ejecutar npm-check-updates -u :

La siguiente dependencia está satisfecha por su rango de versión declarado, pero la versión instalada está detrás. Puede instalar la última versión sin modificar el archivo del paquete mediante la actualización de npm. Si desea actualizar la dependencia en su archivo de paquete de todos modos, ejecute ncu -a.

Al leer la documentación de npm-check-updates, puede ver la diferencia:

https://www.npmjs.com/package/npm-check-updates

-u, --upgrade: sobrescribir el archivo del paquete

-a, --upgradeAll: incluye incluso aquellas dependencias cuya última versión satisface la dependencia de semver declarada

ncu es un alias para npm-check-updates como se ve en el mensaje al escribir npm-check-updates -u :

 [INFO]: You can also use ncu as an alias
about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda