Jak zaktualizować devDependencies w NPM?


155

npm updatewydaje się po prostu aktualizować pakiety w dependencies, ale co z tym devDependencies.

Teraz możesz zainstalować devDependencies, uruchamiając npm install ., ale to nie działa w przypadkunpm update .

Jakieś pomysły?


1
Właśnie wpadłem na to samo. Dziwi mnie ta asymetria między npm installa npm update. Obejrzałem to, usuwając node_moduleskatalog, a następnie uruchamiając npm installponownie, ale na pewno wydaje się, że powinien być lepszy sposób.
Joe White,

7
Otworzyłem raport o błędzie dla tego zachowania. Zobaczymy co się stanie.
Joe White,

Może to być spowodowane tym, że programiści NPM myśleli, że ludzie będą go używać npm linkdo tworzenia środowisk deweloperskich .
Julian Knight,

Odpowiedzi:


157

Aby zaktualizować pakiet package.json oprócz modułów lokalnych, uruchom

npm update --save-dev

Ewentualnie to samo polecenie, aby zaoszczędzić czas

npm update -D

Możesz wyświetlić wszystkie szczegóły aktualizacji lub dowolne polecenie w tym zakresie

npm help <cmd>

20
npm update -Dnie działa dla mnie, nic nie aktualizuje.
AmazingDreams,

27
Dlaczego jest to zaznaczone jako poprawna odpowiedź, gdy pytanie nie dotyczy sposobu zapisywania aktualizacji, package.jsonale raczej sposobu npm updateaktualizowania devDependencies?
Alejandro García Iglesias


1
npm update --save-devdla mnie działa dobrze. Korzystanie z węzłów v12.11.0i npmv6.11.3
maximedupre



4

Jeśli używasz przestarzałej wersji npm, może to być problem. Dlatego przed wykonaniem jakichkolwiek innych poleceń:

sudo npm install npm -g

lub (jeśli powyższe nie działa):

sudo npm update npm -g

Następnie ponownie uruchom konsolę (aby zmiany odniosły skutek). Teraz możesz sprawdzić swój nowy npm --versioni czy jest aktualny wykonaj:

npm update

lub (jeśli wolisz):

npm update --save-dev

Niestety, to nie działa w npm 5. Oto wątek śledzący problem .
Dan Dascalescu

2

Jednym (powolnym) sposobem wymuszenia aktualizacji jest usunięcie katalogu node_modules, a następnie wykonanie tej czynności npm installponownie.

Był to znany błąd npm updatepolecenia, który został naprawiony w gałęzi programistycznej npm, patrz tutaj: https://github.com/isaacs/npm/pull/3863

Wkrótce powinien wylądować na najnowszej stabilnej wersji npm.


1
W przypadku npm> v5 musisz również usunąć, package-lock.jsonaby to zadziałało, w przeciwnym razie po prostu zainstaluje wersje wymienione w tym pliku blokady.
karfau

Poza tym to się nie zaktualizuje package.json. Oto wątek śledzący problem .
Dan Dascalescu

2

Napotkałem ten sam problem, co OP i nie znalazłem rozwiązania, więc zdecydowałem się napisać wtyczkę Grunt, która będzie automatycznie aktualizować moje devDependencies.

Jest na Githubie, chciałbym uzyskać informacje i współpracę, aby uczynić z niego najlepsze narzędzie, którego NPM nie dostarczyło.

Zasadniczo automatycznie aktualizuje przestarzałe zależności programistyczne za pomocą prostego zadania Grunt.

https://github.com/pgilad/grunt-dev-update


2

U mnie zadziałało zainstalowanie takich indywidualnych zależności deweloperskich

npm install react-test-renderer@15.6.1 --save --only=dev

1

Te kroki zadziałały dla mnie:

  1. npm install -g npm-check-updates
  2. ncu -u
  3. npm update
  4. npm install
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.