Разница между NPM и NVM

83

Я знаю, что npm - это менеджер пакетов, а nvm - менеджер версий узла. В настоящее время я пытаюсь автоматически установить среду разработки и производства с помощью Bash и забыл, как я начал и в каком порядке. После установки npm я обнаружил, что наш nvm не установлен.

Мне все еще нужно установить NVM? Если да, то в чем польза?

JohnTheBeloved
источник
5
nvm устанавливает Node, который устанавливает npm. Если вам не нужно / вы хотите переключаться между версиями Node, тогда вам, вероятно, не понадобится nvm.
Феликс Клинг

Ответы:

98

nvm(Node Version Manager) - это инструмент, который позволяет загружать и устанавливать Node.js. Проверьте, установлен ли он через nvm --version.

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash

npm(Node Package Manager) - это инструмент, позволяющий устанавливать пакеты javascript. Проверьте, установлен ли он через npm --version.

npmпоставляется с Node.js, поэтому, если у вас установлен node ( node --version), у вас, скорее всего, естьnpm установили.

В этом нет необходимости, nvmесли вы не хотите, чтобы в вашей системе было установлено несколько версий Node.js или если вы хотите обновить текущую версию.

ThomasReggi
источник
1
что означает, что я могу использовать nvm install watchmanвместо, npm install watchmanпотому что я не хочу менять версии npm
AVI
@JokerFan Это не совсем так. Ты не можешь бежать nvm install watchman. Когда вы меняете свою версию nodeс nvmверсией npmизменений, также.
ThomasReggi
2
Имеет ли смысл иметь в системе несколько версий Node.js?
Ajay S
2
@AjayS Вы можете работать над двумя отдельными проектами, которые имеют очень специфические требования к версии узла, что очень часто бывает у подрядчиков.
Хуан Мендес
23

nvm, как вы сказали, является «активным» менеджером версий nodejs. Вы можете иметь несколько версий узла на одном компьютере и переключаться, выполнив «nvm use version». npm уважает nvm, если он присутствует на машине, что означает, что если у вас активен 0.12.7 и вы выполните npm install -g uuid, он установит его глобально под 0.12.7, но если вы переключитесь на 4.0.0, uuid больше не будет доступны во всем мире.

В любом случае вам не обязательно использовать nvm для установки пакетов.

масимпло
источник
какая версия идет с nvm по умолчанию?
JohnTheBeloved
@JohnTheBeloved: Нет. По умолчанию nvm указывает на версию вашей ОС.
Феликс Клинг
1
@FelixKling прав. Вы можете выполнить "nvm ls", чтобы увидеть версии, используемые nvm, а также "node -v", чтобы увидеть текущий активный узел.
masimplo