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. :(

Nesan Rajendran
źródło
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
Ahmed farag mostafa
źródło
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.

Jeff
źródło
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.

Roger Muscito
źródło
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

Piyush Sonigra
źródło