Skopiowałem package.json z innego projektu i teraz chcę podbić wszystkie zależności do ich najnowszych wersji, ponieważ jest to świeży projekt i nie mam nic przeciwko naprawianiu czegoś, jeśli się zepsuje.
Jaki jest najprostszy sposób, aby to zrobić?
Najlepszym sposobem, jaki znam obecnie, jest uruchomienie npm info express version
, a następnie ręczna aktualizacja package.json dla każdego z nich. Musi być jakiś lepszy sposób.
{
"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: Sześć lat później i nadal utrzymuję npm-check-updates jako kompleksowe rozwiązanie tego problemu. Ciesz się!
Wygląda na to, że npm-check-updates jest teraz jedynym sposobem, aby to zrobić.
npm i -g npm-check-updates
ncu -u
npm install
Na npm <3.11:
Po prostu zmień każdą zależność'wersję na *
, a następnie uruchom npm update --save
. (Uwaga: uszkodzone w ostatnich (3.11) wersjach npm).
Przed:
"dependencies": {
"express": "*",
"mongodb": "*",
"underscore": "*",
"rjs": "*",
"jade": "*",
"async": "*"
}
Po:
"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"
}
Oczywiście, jest to tępy młot aktualizacji zależności. It's fine if—as you said—the project is empty and nothing can break.
Z drugiej strony, jeśli pracujesz w bardziej dojrzałym projekcie, prawdopodobnie chcesz sprawdzić, czy nie ma żadnych zmian w zależnościach przed aktualizacją.
Aby zobaczyć, które moduły są przestarzałe, po prostu uruchom npm outdated
. Wyświetli on listę wszystkich zainstalowanych zależności, które mają dostępne nowsze wersje.
npm-check-updates
jest narzędziem, które automatycznie dostosowuje package.json z
najnowszą wersją wszystkich zależności
zobacz https://www.npmjs.org/package/npm-check-updates
$ npm install -g npm-check-updates
$ ncu -u
$ npm install
[EDIT] Nieco mniej inwazyjny (unika globalnej instalacji) sposób na zrobienie tego, jeśli masz nowoczesną wersję npm
jest:
$ npx npm-check-updates -u
$ npm install