Jeg kopierede package.json fra et andet projekt og ønsker nu at ændre alle afhængigheder til de nyeste versioner, da dette er et nyt projekt, og jeg har ikke noget imod at rette noget, hvis det går i stykker.
Hvad er den nemmeste måde at gøre dette på?
Den bedste måde, jeg kender til nu, er at køre npm info express version
og derefter opdatere package.json manuelt for hver enkelt. Der må være en bedre måde.
{
"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"
}
}
OPDATERING 5/1/19: Seks år senere og jeg vedligeholder stadig npm-check-updates som en omfattende løsning på dette problem. God fornøjelse!
Det ser ud til at npm-check-updates er den eneste måde at få det til at ske på nu.
npm i -g npm-check-updates
ncu -u
npm install
På npm <3.11:
Du skal blot ændre alle afhængigheder til *
og derefter køre npm update --save
. (Note: [brudt i nyere (3.11) versioner af npm] (https://github.com/npm/npm/issues/13555))).
Før:
"dependencies": {
"express": "*",
"mongodb": "*",
"underscore": "*",
"rjs": "*",
"jade": "*",
"async": "*"
}
Efter:
"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"
}
Dette er naturligvis den stumpe hammer til opdatering af afhængigheder. Det'er fint, hvis—som du sagde—projektet er tomt og intet kan gå i stykker.
På den anden side, hvis du arbejder i et mere modent projekt, vil du sandsynligvis gerne kontrollere, at der ikke er nogen brydende ændringer i dine afhængigheder, før du opgraderer.
For at se hvilke moduler der er forældede, skal du blot køre npm outdated
. Det vil liste alle installerede afhængigheder, som har nyere versioner til rådighed.
npm-check-updates
er et værktøj, der automatisk tilpasser en package.json med
seneste version af alle afhængigheder
se https://www.npmjs.org/package/npm-check-updates
$ npm install -g npm-check-updates
$ ncu -u
$ npm install
[EDIT] En lidt mindre indgribende måde at gøre dette på (undgår en global installation), hvis du har en moderne version af npm
er:
$ npx npm-check-updates -u
$ npm install