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

Skopiowałem pakiet.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 teraz znam, jest uruchomienie npm info express version, a następnie aktualizacja pakietu.JSON ręcznie dla każdego z nich. 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"
  }
}

Jestem teraz współpracownikiem npm-check-updates, co jest świetnym rozwiązaniem na to problem.

Author: Benny Neugebauer, 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.

 1767
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
2018-02-05 07:21:10

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 
 876
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
2018-02-05 07:20:54

TLDR; (aktualizacja dla nowszych wersji NPM)

Trochę się zmieniło, odkąd te odpowiedzi zostały napisane.

Npm 2+: npm outdated+npm update+npm shrinkwrap

Starszy npm: npm-check-updates pakiet + npm shrinkwrap

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, co ja potrzebne.


Szczegóły

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

Użyj 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
W tym celu należy wykonać czystą instalację (w/O rm dostałem ostrzeżenia 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, npm install 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(nikt niczego nie dotyka).

 303
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
2016-09-16 21:06:01

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


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 jednowarstwową powłokę na podstawie npm outdated. Patrz edycja dla kodu i Wyjaśnienie.


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

 162
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
2017-05-23 12:18:27

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 Lense

Tutaj wpisz opis obrazka

 57
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
2017-03-27 20:00:30

To działa od npm 1.3.15.

"dependencies": {
  "foo": "latest"
}
 53
Author: Tobiasz 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"
},
 42
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 
 35
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
 25
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ę działanie 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 uaktualnić, zignorować, wyświetlić Dziennik zmian lub zakończyć proces. Udało się. jak na razie świetnie.

 24
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
2018-05-24 21:49:37

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

 21
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
 12
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

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

 10
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

Używam npm-check do archiwizacji tego.

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
 8
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
2017-04-17 14:58:16

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
 8
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

Bardzo późna odpowiedź. ale może komuś pomóc.

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.json do najnowszej wersji z zainstalowanymi zależnościami.

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

 8
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
2018-03-14 06:43:19

Ncu jest nowym aliasem do sprawdzania aktualizacji. W ten sposób nie musisz ręcznie aktualizować numerów wersji ur w pakiecie.JSON ncu robi to za Ciebie . Postępuj zgodnie z poniższą metodą, jeśli korzystasz z komputera z Linuksem

sudo npm i -g npm-check-updates
// decide between -u or -a
ncu -u, --upgrade and overwrite package file
ncu -a, --upgradeAll include even those dependencies whose latest 
          version satisfies the declared server dependency
sudo npm install
 7
Author: karthik006,
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-26 21:22: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

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.

 5
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

Jeden prosty krok:

$ npm install -g npm-check-updates && ncu -a && npm i
 5
Author: Matt,
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-07-10 22:14:31

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

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

 3
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

Npm-check-updates

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

Npm-check-updates pozwala na aktualizację pakietu.json zależności od najnowszych wersji, niezależnie od istniejących ograniczeń wersji.

$ npm install -g npm-check-updates

$ ncu -u

Zależności zaktualizowane! to wszystko!

 3
Author: аlex dykyі,
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-08-30 09:29:44

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: Алексей Володько,
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
  • npm
  • npm update

Powinno dostarczyć Ci najnowsze poszukiwane wersje kompatybilne z Twoją aplikacją. Ale nie najnowsze wersje.

 2
Author: webkitfanz,
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-15 21:27:38

Tak zrobiłem, aby zaktualizować wszystkie zależności w package.json do najnowszej:

npm install -g npm-check-updates
ncu -u --packageFile package.json 
 2
Author: Arpit,
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-07-05 09:12:26

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ę.

 1
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

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.

 1
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

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).

 0
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

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
 0
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