Jak zaktualizować każdą zależność w pakiecie.json do najnowszej wersji?

Skopiowałem package.json z innego projektu i teraz chcę przenieść 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.

Jak najłatwiej to zrobić?

Najlepszym sposobem, jaki znam, jest uruchomienie npm info express version, a następnie ręczne zaktualizowanie każdej zależności w package.json. Musi być 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"
  }
}

Dla przędzy specyficzne rozwiązania odnoszą się do tego so nici.

 2143
Author: Raine Revere, 2013-04-18

30 answers

Wygląda na to, że npm-check-updates jest jedynym sposobem, aby to się stało teraz.

npm i -g npm-check-updates
ncu -u
npm install

Na npm

Po prostu zmień wersję zależności na *, a następnie uruchom npm update --save. (Uwaga: złamane w najnowszych (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łotek aktualizacji zależności. W porządku, jeśli-jak powiedziałeś-projekt jest pusty i nic nie może się zepsuć.

Na z drugiej strony, jeśli pracujesz w bardziej dojrzałym projekcie, prawdopodobnie chcesz sprawdzić, czy nie ma żadnych przełomowych zmian w zależności przed aktualizacją.

Aby zobaczyć, które moduły są nieaktualne, po prostu uruchom npm outdated. Wyświetli listę zainstalowanych zależności, które mają dostępne nowsze wersje.

 2539
Author: josh3736,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-04 21:47:09

npm-check-updates jest narzędziem, które automatycznie dostosowuje pakiet.json z najnowsza wersja WSZYSTKICH zależności

Zobacz https://www.npmjs.org/package/npm-check-updates

$ npm install -g npm-check-updates
$ ncu -u
$ npm install 

[edytuj] nieco mniej natrętny (unika globalnej instalacji) sposób zrobienia tego, jeśli masz nowoczesną wersję npm to:

$ npx npm-check-updates -u
$ npm install 
 1073
Author: Etienne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-05 08:52:43

Aktualizacja dla npm v2 +

Npm 2 + (Node 0.12+):


npm outdated
npm update
git commit package-lock.json

Ancient npm (ok. 2014):

npm install -g npm-check-updates
npm-check-updates
npm shrinkwrap
git commit package-lock.json

Pamiętaj, aby skurczyć swoje deps, albo możesz skończyć z martwym projektem. Wyciągnąłem kiedyś projekt i nie chciał działać, bo moje depy były nieaktualne/zaktualizowane / bałagan. Gdybym się skurczył, npm zainstalowałby dokładnie to, czego potrzebowałem.


Szczegóły

Dla ciekawskich, którzy dotarli tak daleko, oto co polecam:

Użycie npm-check-updates lub npm outdated, aby zasugerować najnowsze wersje.

# `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

# # # następnie wykonaj czystą instalację (bez rm mam kilka ostrzeżeń o zależnościach)

$ rm -rf node_modules
$ npm install 

Na koniec zapisz dokładne wersje do npm-shrinkwrap.json z npm shrinkwrap

$ rm npm-shrinkwrap.json
$ npm shrinkwrap

Teraz, {[9] } będzie teraz używać dokładnych wersji w npm-shrinkwrap.json

Jeśli zaznaczysz npm-shrinkwrap.json w git, wszystkie instalacje będą używać dokładnie tych samych wersji.

Jest to sposób na przejście z rozwoju (wszystkie aktualizacje, cały czas) do produkcji (nobody touch nic).

P. S. Yarn wysyła listę pakietów na Facebook .

 399
Author: Michael Cole,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-22 21:58:42

Aby zaktualizować jedną zależność do jej ostatniej wersji bez konieczności ręcznego otwierania package.json i jej zmiany, możesz uruchomić

npm install {package-name}@* {save flags?}

Tzn.

npm install express@* --save

Dla odniesienia, npm-install


Update : najnowsze wersje mogą wymagać zamiast tego znacznika latest , tj. npm install express@latest


Jak zauważył użytkownik Vespakoen przy odrzuconej edycji, możliwe jest również zaktualizowanie wielu pakietów jednocześnie w ten sposób:

npm install --save package-nave@* other-package@* whatever-thing@*

On również aportuje jednowarstwowa powłoka oparta na npm outdated. Zobacz the edit dla kodu i wyjaśnienia.


PS: nie cierpię też ręcznie edytować package.json za takie rzeczy;)

 210
Author: laconbass,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-16 09:24:44

Jeśli zdarzy ci się używać Visual Studio Code jako IDE, jest to małe, zabawne rozszerzenie, które uczyni aktualizację package.json procesem jednego kliknięcia.

Wersja Obiektywu

Tutaj wpisz opis obrazka

 107
Author: GollyJer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-23 10:38:25

To działa od npm 1.3.15.

"dependencies": {
  "foo": "latest"
}
 62
Author: Tobias Cudnik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-21 22:35:57
  1. Użyj * jako wersji dla najnowszych wydań, w tym unstable
  2. Użyj latest jako definicji wersji dla najnowszej stabilnej wersji
  3. zmodyfikuj pakiet.json z dokładnie najnowszym stabilnym numerem wersji przy użyciu LatestStablePackages

Oto przykład:

"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"
},
 58
Author: Mr. Sun Lin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-08 15:53:05

Jedynym zastrzeżeniem, które znalazłem z najlepszą odpowiedzią powyżej jest to, że aktualizuje moduły do najnowszej wersji. Oznacza to, że może uaktualnić się do niestabilnej wersji alfa.

Użyłbym tego narzędzia npm-check-updates. Moja grupa używała tego narzędzia i działało skutecznie, instalując stabilne aktualizacje.

Jak stwierdził Etienne: zainstaluj i uruchom z tym:

$ npm install -g npm-check-updates
$ npm-check-updates -u
$ npm install 
 45
Author: Tyler Davis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-11 23:37:53

Aby zobaczyć, które pakiety mają nowsze Dostępne wersje, użyj następującego polecenia:

npm outdated

Aby zaktualizować tylko jedną zależność użyj następującego polecenia:

npm install yourPackage@latest --save

Na przykład:

Mój plik package.json ma zależność:

"@progress/kendo-angular-dateinputs": "^1.3.1",

To powinienem napisać:

npm install @progress/kendo-angular-dateinputs@latest --save
 39
Author: StepUp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-07 07:01:18

Bardzo podoba mi się, jak działa npm-upgrade. Jest to proste narzędzie wiersza poleceń, które przechodzi przez wszystkie zależności i pozwala zobaczyć bieżącą wersję w porównaniu do najnowszej wersji i aktualizacji, jeśli chcesz.

Oto zrzut ekranu z tego, co dzieje się po uruchomieniu npm-upgrade w katalogu głównym projektu (obok pliku package.json):

przykład aktualizacji npm

Dla każdej zależności możesz wybrać uaktualnienie, zignorowanie, przeglądanie dziennika zmian lub zakończenie procesu. Ma jak na razie świetnie mi poszło.

EDIT: aby było jasne, jest to pakiet innej firmy, który musi zostać zainstalowany przed uruchomieniem polecenia. Nie pochodzi z samego npm:

npm install -g npm-upgrade

Następnie z katalogu głównego projektu, który ma pakiet.plik json:

npm-upgrade
 36
Author: manncito,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-18 17:17:36

Oto podstawowe wyrażenia regularne, aby dopasować semantyczne numery wersji, dzięki czemu można szybko zastąpić je wszystkie gwiazdką.

Semantic Version Regex

([>|<|=|~|^|\s])*?(\d+\.)?(\d+\.)?(\*|\d+)

Jak używać

Wybierz wersje pakietów, które chcesz zastąpić w pliku JSON.

zrzut ekranu: wybierz tekst, który chcesz zastąpić

Wprowadź regex powyżej i sprawdź, czy pasuje do poprawnego tekstu.

zrzut ekranu: wprowadź regex semver powyżej

Zastąp wszystkie mecze gwiazdką.

zrzut ekranu: zastąp wersje pakietu gwiazdką

Run npm update --save

 23
Author: daniellmb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-04 15:21:20

Ostatnio musiałem zaktualizować kilka projektów, które używały npm i pakietu.json za ich gruntfile.js magic. Następujące polecenie bash (multiline command) działało dobrze dla mnie:

npm outdated --json --depth=0 | \
jq --ascii-output --monochrome-output '. | keys | .[]' | \
xargs npm install $1 --save-dev

Pomysł tutaj: Aby przesłać wyjście npm outdated jako json, do jq
(jq jest parserem wiersza poleceń json / narzędziem zapytań)
(zwróć uwagę na użycie argumentu --depth dla npm outdated)
jq usunie dane wyjściowe tylko do nazwy pakietu najwyższego poziomu.
wreszcie xargs umieszcza każdą bibliotekę po kolei do polecenia npm install LIBRARYNAME --save-dev

[[11]}powyższe jest to, co działało dla mnie na maszynie runnning: node=v0. 11. 10 osx=10.9.2 npm=1.3.24

To wymagane:
xargs http://en.wikipedia.org/wiki/Xargs (native to my machine I believe)
oraz
jq http://stedolan.github.io/jq/ (zainstalowałem go z brew install jq)

Uwaga: zapisuję tylko zaktualizowane biblioteki do pakietu.json wewnątrz klucza json devDependancies używając --save-dev, to był wymóg moich projektów, całkiem możliwe, że nie twój.

Potem sprawdzam, czy wszystko jest sosem z prostym

npm outdated --depth=0

Możesz również sprawdzić aktualne wersje zainstalowanych bibliotek toplevel za pomocą

npm list --depth=0
 17
Author: andxyz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-20 17:37:18

Ta funkcja została wprowadzona w npm v5. aktualizacja do npm za pomocą npm install -g npm@latest i

Do aktualizacji package.json

  1. Usunąć /node_modules i package-lock.json (if you have any)

  2. Run npm update. spowoduje to aktualizację pakietu zależności.json do najnowszego, opartego na semver .

Aby zaktualizować do najnowszej wersji. możesz wybrać npm-check-updates

 17
Author: Sibiraj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-28 15:22:22

Jeśli chcesz używać łagodnego podejścia poprzez piękny (dla terminala) interaktywny interfejs raportowania, sugerowałbym użycie npm-check.

To mniej młotek i daje Ci więcej wynikowej wiedzy i kontroli nad aktualizacjami zależności.

Aby dać ci przedsmak tego, co czeka, oto zrzut ekranu (zeskrobany ze strony git dla npm-check):

Tutaj wpisz opis obrazka

 16
Author: TWright,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-27 06:04:06

Jeśli używasz yarn, następujące polecenie aktualizuje wszystkie pakiety do ich najnowszej wersji:

yarn upgrade --latest

Z ich docs :

Polecenie upgrade --latest aktualizuje Pakiety tak samo jak polecenie upgrade, ale ignoruje zakres wersji podany w pakiecie.json. Zamiast tego zostanie użyta wersja określona przez najnowszy znacznik(potencjalnie uaktualniająca Pakiety między głównymi wersjami).

 15
Author: fotijr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-17 13:14:24

Używam npm-check, aby to osiągnąć.

npm i -g npm npm-check
npm-check -ug #to update globals
npm-check -u #to update locals

Tutaj wpisz opis obrazka

Kolejna przydatna lista poleceń, która zachowa dokładne numery wersji w package.json

npm cache clean
rm -rf node_modules/
npm i -g npm npm-check-updates
ncu -g #update globals
ncu -ua #update locals
npm i
 15
Author: goksel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-01 15:16:48

Od wersji npm 5.2.0, istnieje sposób, aby uruchomić to w jednej linii bez instalowania żadnych dodatkowych pakietów do globalnego rejestru npm ani lokalnie do aplikacji. Można to zrobić za pomocą nowego narzędzia npx, które jest dołączone do npm. (Kliknij tutaj, aby dowiedzieć się więcej.)

Uruchom następujące polecenie w katalogu głównym projektu:

npx npm-check-updates -u && npm i
 14
Author: ilyakam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-20 00:58:14

Updtr!

Bazując na npm, updtr instaluje najnowszą wersję i uruchamia test npm dla każdej zależności. Jeśli test się powiedzie, updtr zapisze nowy numer wersji pakietu.json. Jeśli jednak test się nie powiedzie, updtr wycofuje swoje zmiany.

Https://github.com/peerigon/updtr

 11
Author: David Braun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-27 22:24:01

Jeśli używasz yarn, yarn upgrade-interactive to naprawdę eleganckie narzędzie, które pozwala wyświetlić nieaktualne zależności, a następnie wybrać, które z nich chcesz zaktualizować.

Więcej powodów, aby używać przędzy nad npm. Heh.

 9
Author: Yangshun Tay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-13 10:09:14

Polecenia, których musiałem użyć do aktualizacji package.json dla NPM 3.10.10:

npm install -g npm-check-updates
ncu -a
npm install

Background:

Używałem najnowszej komendy z @ josh3736, ale moja package.json nie została zaktualizowana. Następnie zauważyłem tekst opisu podczas uruchamiania npm-check-updates -u:

Następująca zależność jest spełniona przez jej deklarowany zakres wersji, ale zainstalowana wersja jest za. Możesz zainstalować najnowszą wersja bez modyfikacji pliku pakietu za pomocą npm update. Jeśli chcesz zaktualizować zależność w Twój plik pakietu tak czy siak, Uruchom ncu -a.

Czytając dokumentację npm-check-updates widać różnicę:

Https://www.npmjs.com/package/npm-check-updates

- u, --upgrade: zastąp plik pakietu

-a, --upgradeAll: include even those dependencies whose latest version fulfills the declared SemVer dependency

Ncu jest aliasem dla {[6] } Jak widać w wiadomości podczas wpisywania npm-check-updates -u:

[INFO]: You can also use ncu as an alias
 9
Author: Ogglas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-01 13:02:35

Powyższe polecenia są niebezpieczne, ponieważ możesz uszkodzić moduł podczas przełączania wersji. Zamiast tego polecam następujące

  • Ustaw aktualną wersję modułów węzła w pakiecie.json za pomocą polecenia npm shrinkwrap.
  • zaktualizuj każdą zależność do najnowszej wersji, jeśli nie złamie testów za pomocą https://github.com/bahmutov/next-update narzędzie wiersza poleceń
npm install -g next-update
// from your package
next-update
 5
Author: gleb bahmutov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-02 16:43:23

Spróbuj wykonać polecenie, jeśli używasz npm 5 i node 8

Npm update --save

 4
Author: krunal shah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-04 11:48:43

Następujący kod (który został zaakceptowany) napisał mi coś w stylu "to trwa zbyt długo bla-bla" i nic nie zrobił. Prawdopodobnie użycie flagi globalnej było problemem, idk.

npm i -g npm-check-updates
ncu -u
npm install

Postanowiłem użyć mojego edytora tekstu i zamiast tego zastosować podejście pół-ręczne.

Skopiowałem taką listę (tylko dużo dłuższą) z zależności dev mojego package.json do edytora tekstu notepad++:

"browserify": "10.2.6",
"expect.js": "^0.3.1",
"karma": "^0.13.22",
"karma-browserify": "^5.2.0",

Ustawiłem tryb wyszukiwania na wyrażenie regularne, użyłem wzorca ^\s*"([^"]+)".*$ aby uzyskać nazwę pakietu i zastąpił go npm uninstall \1 --save-dev \nnpm install \1 --save-dev. Kliknij na "zastąp wszystko". Otput był taki:

npm uninstall browserify --save-dev 
npm install browserify --save-dev
npm uninstall expect.js --save-dev 
npm install expect.js --save-dev
npm uninstall karma --save-dev 
npm install karma --save-dev
npm uninstall karma-browserify --save-dev 
npm install karma-browserify --save-dev

Skopiowałem go z powrotem do Basha i wcisnąłem enter. Wszystko zostało zmodernizowane i działa dobrze. To wszystko.

"browserify": "^16.1.0",
"expect.js": "^0.3.1",
"karma": "^2.0.0",
"karma-browserify": "^5.2.0",

Nie sądzę, żeby to było coś wielkiego, ponieważ musisz to robić tylko od czasu do czasu, ale możesz łatwo napisać skrypt, który parsuje package.json i aktualizuje twoje pakiety. Myślę, że tak jest lepiej, ponieważ możesz edytować swoją listę, jeśli potrzebujesz czegoś specjalnego, na przykład utrzymania bieżącego wersja lib.

 3
Author: inf3rno,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-25 23:15:54

Rozwiązałem to, widząc instrukcje z https://github.com/tjunnone/npm-check-updates

$ npm install -g npm-check-updates
$ ncu
$ ncu -u # to update all the dependencies to latest
$ ncu -u "specific module name"  #in case you want to update specific dependencies to latest
 3
Author: Sunil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-22 14:17:11

Znalazłem inne rozwiązanie dla najnowszej wersji NPM. To, co chcę zrobić, to zastąpić wszystkie zależności " * "wyraźnym ostatnim numerem wersji. Żadna z omawianych metod nie zadziałała.

Co zrobiłem:

  1. Zamień wszystkie " * " na "^0.0.0"
  2. Run npm-check-updates -u
Wszystko w pakiecie.json jest teraz aktualizowany do ostatniej wersji.
 3
Author: miqrc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-01 15:50:42

Jeśli nie chcesz instalować global npm-check-updates możesz po prostu uruchomić:

node -e "const pk = JSON.parse(require('fs').readFileSync('package.json', 'utf-8'));require('child_process').spawn('npm', ['install', ...Object.keys(Object.assign({},pk.dependencies, pk.devDependencies)).map(a=>a+'@latest')]).stdout.on('data', d=>console.log(d.toString()))"
 3
Author: Yukulélé,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-01 02:04:43

Jeśli szukasz prostszego rozwiązania, które nie wymaga instalowania pakietów npm, to polecam updatepackagejson.com

updatepackagejson.com

 3
Author: Andrei Gec,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-09-28 00:10:50

Alternatywą jest

"dependencies":{
    "foo" : ">=1.4.5"
}

Za każdym razem, gdy używasz npm update, automatycznie aktualizuje się do najnowszej wersji. Więcej składni wersji można znaleźć tutaj: https://www.npmjs.org/doc/misc/semver.html

 2
Author: Haven,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-18 12:52:06

Rozwiązanie bez dodatkowych opakowań

Zmień wersję każdej zależności na *:

"dependencies": {
    "react": "*",
    "react-google-maps": "*"
  }

Następnie uruchom npm update --save.

Niektóre pakiety zostały zaktualizowane, ale niektóre nie?

"dependencies": {
    "react": "^15.0.1",
    "react-google-maps": "*"
  }

To jest najtrudniejsza część, oznacza to, że Twoja lokalna wersja "Reacta" była niższa niż najnowsza. W tym przypadku npm pobrał i zaktualizował pakiet "react". Jednak Twoja lokalna wersja "react-google-maps" jest taka sama jak najnowsza.

Jeśli nadal chcesz aby "zaktualizować" niezmienione *, Musisz usunąć te moduły z folderu node_modules.

Np. Usuń node_modules/react-google-maps.

Wreszcie uruchomić ponownie npm update --save.

"dependencies": {
    "react": "^15.0.1",
    "react-google-maps": "^4.10.1"
  }

Nie zapomnij uruchomić npm update --save-dev, Jeśli chcesz zaktualizować zależności programistyczne.

 2
Author: Alexey Volodko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-27 14:29:49

Greenkeeper jeśli używasz Githuba. https://greenkeeper.io/

Jest to integracja z Github i niezwykle łatwa w konfiguracji. Po zainstalowaniu automatycznie tworzy pull requesty w repozytoriach, które określisz (lub wszystkie, jeśli chcesz) i utrzymuje Twój kod zawsze na bieżąco, bez zmuszania Cię do robienia czegokolwiek ręcznie. PRs powinien następnie uruchomić kompilację na usłudze CI i w zależności od pomyślnego lub nieudanego sprawdzenia możesz nadal zastanawiać się, co powoduje problem lub kiedy CI przechodzi po prostu połączyć PR.

greenkeeper PR 1 greenkeeper PR 2

Na dole widać, że pierwsza kompilacja nie powiodła się na początku i po commicie ("upgrade to node v6.9") testy przechodzą, więc mogłem w końcu połączyć PR. Zawiera też wiele emoji.

Inną alternatywą byłoby https://dependencyci.com / , jednak nie testowałem go intensywnie. Po pierwszym spojrzeniu Greenkeeper wygląda ogólnie lepiej IMO i ma lepszą integrację.

 2
Author: Luca Steeb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-08 23:22:08