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.