Подтвердить что ты не робот

Как установить несколько версий одного и того же модуля node.js?

Могу ли я установить несколько версий одного и того же модуля node глобально с помощью npm?

4b9b3361

Ответ 1

Я не думаю, что есть (хороший) способ сделать это.

Однако я предполагаю, что ваш случай использования таков: у вас есть два проекта, для которых требуются разные версии глобального пакета.

В таких случаях я обычно избегаю установки пакетов по всему миру и вместо этого устанавливаю их локально (без -g). Например, если вы хотите установить определенную более старую версию пакета "mocha" для данного проекта, вы бы сделали

cd ~/src/myproject
npm install --save-dev [email protected]^1.0.0

(Обратите внимание, что здесь мы не используем -g.) Затем назовите его так:

./node_modules/.bin/mocha

Ответ 2

В настоящее время нет.

(Связано: Вы можете установить несколько версий node с помощью NVM (Node Менеджер версий): https://github.com/creationix/nvm)

Ответ 3

В то время как это возможно, его, вероятно, будет трудно поддерживать без написания собственных сценариев, чтобы управлять им. Для этого я предполагаю, что вы используете MacOS или Linux, и у вас есть node, установленный в /usr/local/bin

Когда вы устанавливаете глобальный модуль, npm помещает модуль и его зависимости в том же месте, где установлен node. Обычно /usr/local/lib/node_modules, затем создает символическую ссылку для этого модуля в /usr/local/bin.

Например, вы хотите установить nodemon, поэтому вы запускаете npm install -g nodemon. npm устанавливает nodemon на /usr/local/lib/node_modules/nodemon и создает символическую ссылку в /usr/local/bin/nodemon, которая указывает на /usr/local/lib/node_modules/nodemon/bin/nodemon.js

Предположим, что вы только что установили [email protected], но по какой-то причине вам также понадобится [email protected]

Чтобы они оба были установлены одновременно, но не конфликтуют, вы можете:

  • переименуйте каталог для существующей копии nodemon от nodemon до nodemon18
  • создайте новую символическую ссылку nodemon18, используя ln -s /usr/local/bin/nodemon18 /usr/local/lib/node_modules/nodemon/bin/nodemon.js (не забудьте сделать ее выполнимой)
  • установить [email protected] через npm install -g [email protected]

Теперь запустите nodemon с вашего терминала, запустив [email protected] и запустив nodemon18, запустите [email protected]

YMMV. Я действительно не рекомендую это делать.