Могу ли я установить несколько версий одного и того же модуля node
глобально с помощью npm
?
Как установить несколько версий одного и того же модуля node.js?
Ответ 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. Я действительно не рекомендую это делать.