Ho copiato il package.json da un altro progetto e ora voglio spostare tutte le dipendenze alle loro ultime versioni, dato che questo è un progetto nuovo e non mi dispiace correggere qualcosa se si rompe.
Qual è il modo più semplice per farlo?
Il modo migliore che conosco ora è eseguire npm info express version
quindi aggiornare manualmente il package.json per ciascuno. Ci deve essere un modo migliore.
{
"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"
}
}
AGGIORNAMENTO 5/1/19: Sei anni dopo e sto ancora mantenendo npm-check-updates come soluzione completa a questo problema. Buon divertimento!
Sembra che npm-check-updates sia l'unico modo per farlo accadere ora.
npm i -g npm-check-updates
ncu -u
npm install
Su npm <3.11:
Cambia semplicemente la versione di ogni dipendenza in *
, poi esegui `npm update --save``. (Nota: rotto nelle versioni recenti (3.11) di npm.
Prima:
"dependencies": {
"express": "*",
"mongodb": "*",
"underscore": "*",
"rjs": "*",
"jade": "*",
"async": "*"
}
Dopo:
"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"
}
Naturalmente, questo è il martello smussato dell'aggiornamento delle dipendenze. Va bene se—come hai detto—il progetto è vuoto e nulla può rompersi.
D'altra parte, se stai lavorando in un progetto più maturo, probabilmente vuoi verificare che non ci siano cambiamenti nelle tue dipendenze prima di aggiornare.
Per vedere quali moduli sono obsoleti, basta eseguire npm outdated
. Elencherà tutte le dipendenze installate che hanno versioni più recenti disponibili.
npm-check-updates
è un'utilità che regola automaticamente un package.json con le
ultima versione di tutte le dipendenze
vedere https://www.npmjs.org/package/npm-check-updates
$ npm install -g npm-check-updates
$ ncu -u
$ npm install
[EDIT] Un modo leggermente meno invasivo (evita un'installazione globale) di fare questo se hai una versione moderna di npm
è:
$ npx npm-check-updates -u
$ npm install