Когда следует использовать npm с флагом "-g" и почему?

Недавно я начал использовать npm для управления пакетами js. Хотя у меня есть справедливое понимание управления пакетами в разных enivronments (скажем, используя apt, rvm/gem, pythonbrew/virtualenv/pip), я не совсем понимаю, как npm полностью вписывается.

Я хотел бы узнать больше о том, как работает флаг "-g" и почему я должен его использовать. Как и в большинстве блогов и вики, они ссылаются на использование "-g" при установке без объяснения причин, и я понимаю, что эти пакеты установлены глобально.

  • Но почему я должен устанавливать эти пакеты всегда в глобальном масштабе?
  • Что значит устанавливать эти пакеты без флага "-g" ?
  • Что мне делать с установленными пакетами локально, скажем, изолированный для разных проектов?
  • Как я могу сделать список пакетов npm, используемых в проекте, и расслоить его в проекте, если мне нужно его проверить с помощью управления версиями (если возможно вообще)?

Ответ 1

-g - флаг глобальной установки, как описано в этом ответе. Он подробно освещен в этом сообщении node в блоге.

Правила большого пальца:

  • Установить глобально, если пакет предоставляет инструменты командной строки
  • Установите локально, если вы используете пакет как часть своего приложения.
  • Установить глобально и локально, если применяются оба прецедента.