Jak zainstalować tylko „devDependencies” przy użyciu npm


88

Próbuję zainstalować TYLKO pliki „devDependencies” wymienione w moim pliku package.json. Ale żadne z poniższych poleceń nie działa zgodnie z oczekiwaniami. Wszystkie poniższe polecenia instalują zależności produkcyjne, których również nie chcę.

npm install --dev
npm install --only=dev
npm install --only-dev

Nie przychodzi mi do głowy żaden inny sposób nakazania npm zainstalowania samych devDependencies. :(


jak obecnie - npm WARN install Użycie tej --devopcji jest przestarzałe. Użyj --only=devzamiast tego.
Andriy Leshchuk

Odpowiedzi:


136

Sprawdź dokumentację NPM pod kątem instalacji :

Z --productionflagą (lub gdy NODE_ENVzmienna środowiskowa jest ustawiona na produkcję), npm nie zainstaluje modułów wymienionych w devDependencies.

--only={prod[uction]|dev[elopment]}Argumentu spowoduje albo tylko devDependencies lub tylko non-devDependencies być zainstalowane niezależnie od NODE_ENV.

Czy wypróbowałeś następujące rzeczy?

npm install --only=dev

10
Dopiero teraz dowiedziałem się, że moja wersja npm to 2.x. Zaktualizowałem go do wersji 3.x, uruchamiając polecenie, npm install npm -ga opcja --only = dev działała jak urok. Dzięki za odpowiedzi.
Nesan Rajendran

Problem z wersją, o którym wspomniał @NesanJoseph, był również problemem w moim przypadku. W starszej wersji npm npm install --produżywany do instalowania elementów z dependenciesfolderu. Zarówno npm installi npm install --devużywany do instalacji z obu tych dependenciesi devDependenciesfolderów!
Shiyaz,

Otrzymuję ten sam problem, o którym wspomina @ricka, używając nvm do uruchamiania node v 10.9.0 i npm v 6.4.1 (obie najnowsze wersje z 10/18), a także używam --only = dev nadal instaluje również zależności aplikacji . Zasadniczo flagi instalacji npm są w tym momencie w 100% bezużyteczne.
Henry

Nie działa dla mnie (węzeł v12.19.0, npm v6.14.8). Być może ma to coś wspólnego z tym problemem otwartym od kwietnia 2016 r .: github.com/npm/npm/issues/12184
Fapaz

23
npm install thePackageName --save-dev

U mnie to działa dobrze.


3
--save-devzapisuje pakiet w devDependencies w package.json
Rashomon

1
--save-dev ma na celu zaznaczenie, że zainstalowany pakiet zostanie zainstalowany w ramach devDependencies
Daniel Dubovski

3
Bardziej jaknpm install thePackageName --save-dev
Deke

3
Spowoduje to zainstalowanie jawnej nazwy pojedynczego pakietu i zapisanie go w zależnościach dev. Pytanie dotyczy tego, jak zainstalować tylko devDependencies z pliku package.json.
Lalnuntluanga Chhakchhuak

1
Nie spełnia kryteriów pytania. Twoja odpowiedź brzmi: 1. pojedynczy pakiet 2. pytanie pyta, jak zainstalować rzeczy, które są już w package.json, ale tylko na liście zależności.
Urasquirrel

15
npm i -D

Opcjonalna wersja krótka.


TAK, zrobiłem npm install -Di zadziałało. więc byłem zaskoczony i googlowałem, po wielu odpowiedziach widzę twoją odpowiedź :)
its4zahoor

2

Uruchomiony npm install, zainstaluje wszystkie zależności w devDependencies `lub zależności .

Do instalowania i zapisywania pakietów jako zależności dev w pliku package.json npm install package_name --save-devlub opcji pass-D

Aby zainstalować wszystkie pakiety z devDependencies , npm install --only=dev

Do instalowania i zapisywania pakietów jako prod lub tylko zależności w package.json npm install package_name --save-prodlub pass option -Plubnpm install package_name

Aby zainstalować wszystkie pakiety w zależnościach lub zależnościach Prod , ustaw zmienną środowiskową NODE_ENV=productionlub przekaż ją za pomocą polecenia NODE_ENV=production npm installlubnpm install --only=prod

Zamiast używać installpolecenia npm, tak jak npm installmożesz, po prostu użyj ilike npm i, zamiast install.

Odniesienie

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.