Kiedy powinienem używać npm z flagą „-g” i dlaczego?

117

Niedawno zacząłem używać npm do zarządzania pakietami js. Chociaż dobrze rozumiem zarządzanie pakietami w różnych środowiskach (powiedzmy, używając apt, rvm / gem, pythonbrew / virtualenv / pip), nie bardzo rozumiem, jak w pełni pasuje npm.

Chciałbym dowiedzieć się więcej o tym, jak działa flaga „-g” i dlaczego powinienem jej używać. Jak w większości blogów i wiki, używają "-g" podczas instalacji bez wyjaśnienia dlaczego, i rozumiem, że te pakiety są instalowane globalnie.

  • Ale dlaczego mam zawsze instalować te pakiety na całym świecie?
  • Co to znaczy zainstalować te pakiety bez flagi „-g”?
  • Co mam zrobić, aby zainstalować pakiety lokalnie, powiedzmy w piaskownicy dla różnych projektów?
  • Jak więc mogę utworzyć listę pakietów npm używanych w projekcie i umieścić ją w projekcie, jeśli potrzebowałem jej do sprawdzenia z kontrolą wersji (jeśli w ogóle to możliwe)?
suVasH .....
źródło

Odpowiedzi:

122

-gjest globalną flagą instalacji , jak wyjaśniono w tej odpowiedzi . Jest to szczegółowo omówione w tym poście na blogu dotyczącym węzła .

Podstawowe zasady:

  • Zainstaluj globalnie, jeśli pakiet zawiera narzędzia wiersza polecenia
  • Zainstaluj lokalnie, jeśli używasz pakietu jako części aplikacji
  • Zainstaluj globalnie i lokalnie, jeśli mają zastosowanie oba przypadki użycia
cbednarski
źródło