Ik heb package.json gekopieerd van een ander project en wil nu alle afhankelijkheden naar hun laatste versies brengen, aangezien dit een nieuw project is en ik het niet erg vind om iets te repareren als het breekt.
Wat's de gemakkelijkste manier om dit te doen?
De beste manier die ik nu ken is om npm info express version
uit te voeren en dan package.json handmatig bij te werken voor elk van hen. Er moet een betere manier zijn.
{
"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"
}
}
UPDATE 5/1/19: Zes jaar later en ik onderhoud nog steeds npm-check-updates als een uitgebreide oplossing voor dit probleem. Veel plezier!
Het lijkt erop dat npm-check-updates de enige manier is om dit nu te laten gebeuren.
npm i -g npm-check-updates
ncu -u
npm install
Op npm <3.11:
Verander gewoon elke dependency's versie in *
, voer dan npm update --save
uit. (Note: gebroken in recente (3.11) versies van npm).
Voorheen:
"dependencies": {
"express": "*",
"mongodb": "*",
"underscore": "*",
"rjs": "*",
"jade": "*",
"async": "*"
}
Na:
"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"
}
Natuurlijk, dit is de botte hamer van het bijwerken van afhankelijkheden. Het's prima als—zoals je zei—het project leeg is en niets kan breken.
Aan de andere kant, als je'in een meer volwassen project werkt, wil je waarschijnlijk verifiëren dat er geen brekende veranderingen in je afhankelijkheden zijn voordat je gaat upgraden.
Om te zien welke modules verouderd zijn, voer gewoon npm outdated
uit. Het zal een lijst maken van alle geïnstalleerde afhankelijkheden die nieuwere versies beschikbaar hebben.
npm-check-updates
is een hulpprogramma dat automatisch een package.json aanpast met de
laatste versie van alle afhankelijkheden
zie https://www.npmjs.org/package/npm-check-updates
$ npm install -g npm-check-updates
$ ncu -u
$ npm install
[EDIT] Een iets minder opdringerige (vermijdt een globale installatie) manier om dit te doen als je een moderne versie van npm
hebt is:
$ npx npm-check-updates -u
$ npm install