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


83

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

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


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 или если вы хотите обновить текущую версию.


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.