Vraag Hoe kan ik elke afhankelijkheid in package.json bijwerken naar de nieuwste versie?
Ik heb package.json gekopieerd van een ander project en wil nu alle afhankelijkheden naar hun nieuwste versies boren, omdat dit een nieuw project is en ik het niet erg vind om iets te repareren als het kapot gaat.
Wat is de gemakkelijkste manier om dit te doen?
De beste manier die ik nu weet, is rennen npm info express version
update dan package.json handmatig voor elke. 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"
}
}
Ik ben nu een bijdrager NPM-check-updates, wat een geweldige oplossing is voor dit probleem.
1429
2018-04-18 02:39
oorsprong
antwoorden:
Lijkt op NPM-check-updates is de enige manier om dit nu te laten gebeuren.
npm i -g npm-check-updates
ncu -u
npm install
Op npm <3,11:
Verander eenvoudig de versie van elke afhankelijkheid in *
, ren dan npm update --save
. (Notitie: gebroken in recente (3.11) versies van npm).
Voor:
"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 is dit de botte hamer van het bijwerken van afhankelijkheden. Het is prima als, zoals je al zei, het project leeg is en niets kan breken.
Aan de andere kant, als je in een meer volwassen project werkt, wil je waarschijnlijk eerst controleren of er geen breukveranderingen in je afhankelijkheden zijn voordat je gaat upgraden.
Om te zien welke modules zijn verouderd, gewoon uitvoeren npm outdated
. Het zal alle geïnstalleerde afhankelijkheden weergeven die nieuwere versies beschikbaar hebben.
1689
2018-04-18 03:35
npm-check-updates
is een hulpprogramma dat automatisch een package.json aanpast met de
nieuwste versie van alle afhankelijkheden
zien https://www.npmjs.org/package/npm-check-updates
$ npm install -g npm-check-updates
$ ncu -u
$ npm install
863
2018-04-03 21:53
TLDR; (bijgewerkt voor nieuwere NPM-versies)
Dingen zijn een beetje veranderd sinds deze antwoorden oorspronkelijk zijn geschreven.
npm 2+: npm outdated
+npm update
+npm shrinkwrap
Oudere npm: npm-check-updates
pakket + npm shrinkwrap
Vergeet niet je deps in te pakken of je kunt eindigen met een dood project. Ik haalde een project uit de andere dag en het zou niet lopen omdat mijn deps allemaal verouderd waren / bijgewerkt / een puinhoop. Als ik was ingekrompen, zou npm precies hebben geïnstalleerd wat ik nodig had.
Details
Voor de nieuwsgierigen die het zo ver maken, hier is wat ik aanbeveel:
Gebruik npm-check-updates
of npm outdated
om de nieuwste versies te suggereren.
# `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
Voer vervolgens een schone installatie uit (zonder de rm kreeg ik afhankelijkheidswaarschuwingen)
$ rm -rf node_modules
$ npm install
Sla tot slot exacte versies op npm-shrinkwrap.json
met npm shrinkwrap
$ rm npm-shrinkwrap.json
$ npm shrinkwrap
Nu, npm install
zal nu exacte versies gebruiken in npm-shrinkwrap.json
Als je het controleert npm-shrinkwrap.json
in git zullen alle installaties exact dezelfde versies gebruiken.
Dit is een manier om uit de ontwikkeling (alle updates, de hele tijd) over te gaan naar productie (niemand raakt niets aan).
294
2018-06-02 22:29
Updaten een afhankelijkheid van de nieuwste versie zonder het te openen package.json
en verander het, je kunt rennen
npm install {package-name}@* {save flags?}
d.w.z.
npm install express@* --save
Als referentie, NPM-install
Zoals opgemerkt door gebruiker Vespakoen bij een afgewezen bewerking is het ook mogelijk om meerdere pakketten tegelijk op deze manier bij te werken:
npm install --save package-nave@* other-package@* whatever-thing@*
Hij plant ook een one-liner voor de shell op basis van npm outdated
. Zien de bewerking voor code en uitleg.
PS: Ik heb ook een hekel aan het handmatig moeten bewerken package.json
voor dingen als dat;)
155
2018-04-30 14:51
Als je toevallig gebruikt Visual Studio-code als uw IDE is dit een leuke kleine extensie om te updaten package.json
een éénklik proces.

50
2018-03-27 20:00
Dit werkt vanaf npm 1.3.15.
"dependencies": {
"foo": "latest"
}
49
2018-01-21 22:35
- Gebruik
*
als de versie voor de nieuwste releases, inclusief onstabiel
- Gebruik
latest
als versiedefinitie voor de nieuwste stabiele versie
- Wijzig de package.json met exact het laatste stabiele versienummer met
LatestStablePackages
Hier is een voorbeeld:
"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"
},
38
2018-01-23 03:45
Het enige voorbehoud dat ik heb gevonden met het beste antwoord hierboven, is dat het de modules bijwerkt naar de nieuwste versie. Dit betekent dat het kan worden bijgewerkt naar een onstabiele alpha build.
Ik zou dat hulpmiddel van de npm-controle-updates gebruiken.
Mijn groep gebruikte deze tool en het werkte effectief door de stabiele updates te installeren.
Zoals Etienne hierboven al zei: installeer en voer dit uit:
$ npm install -g npm-check-updates
$ npm-check-updates -u
$ npm install
34
2018-02-11 23:37