NPM (Node Package Manager) to domyślny menedżer pakietów używany w środowisku uruchomieniowym Javascript w NodeJS. Dzięki NPM możemy instalować różne paczki/zależności do swojego projektu.
Domyślne zachowanie npm install
Instalacja paczki jest bardzo prosta, wystarczy uruchomić komendę npm install [nazwa_paczki] i zacznie się ona instalować w naszym projekcie.
Możemy tą komendę wywołać w wersji skróconej, tj. npm i [nazwa_paczki] i efekt jest taki sam.
Od wersji NPM 5.0.0 komenda ta zapisze zależność do sekcji dependencies w pliku package.json oraz pobierze całą paczkę wraz z zależnościami pobieranej paczki do folderu node_modules.
Przed wersją NPM 5.0.0 trzeba było dodać dodatkową flagę --save ale teraz nie jest to konieczne.
Dodatkowe flagi
Do komendy npm install możemy przekazać odpowiednie flagi, dzięki którym możemy kontrolować gdzie i jak zostanie zapisana zależność:
--save-prodlub-P: Paczka zostanie zapisana do sekcjidependenciesw plikupackage.json. Jest to domyślne zachowanie, chyba że zostanie wywołana inna komenda, np.-Dlub-O.
npm install --save-prod # === npm i -P
–-save-devlub-D: Paczka zostanie zapisana do sekcjidevDependencies. Development dependencies to paczki wykorzystywane tylko podczas pracy nad aplikacją jak np. linter, test runner itp. Te zależności nie wpływają na wynik, czy wygląd aplikacji.
npm install --save-dev # === npm i -D
–-save-optionallub-O: Paczka zostanie zapisana do sekcjioptionalDependencies. Optional dependencies to takie paczki, które zostaną wykorzystane dopiero wtedy, gdy konkretna funkcjonalność będzie użyta. Paczka ta nie będzie wymagana, gdy dana funkcjonalność jej nie użyje.
npm install -save-optional # === npm i -O
–-no-save: Paczka nie zostanie zapisana w plikupackage.jsonale nadal zostanie pobrana do folderunode_modules.
npm install --no-save
Gdy użyjemy którejkolwiek komendy, która zapisze paczkę do pliku package.json to mamy możliwość użycia dwóch dodatkowych flag:
–-save-exactlub-E: Paczka zostanie zapisana z dokładnie określoną wersją zamiast z domyślnie używanym operatorem semver.
npm install --save-exact # lub npm i -E
--save-bundlelub-B: Paczka zostanie zapisana do sekcjibundledDependencies.
npm install --save-bundle