как мне обновить пути к глобальным пакетам, таким как node-spector, при смене версий через NVM?

Связано, а не ответ: Управление глобальными пакетами npm при использовании nvm

Допустим, я устанавливаю Node 0.12.4 с NVM. Теперь я хочу установить node-inspector и использовать его из командной строки:

npm install -g node-inspector

Node-inspector будет размещен в: /Users/[xxx]/.nvm/versions/node/v0.12.4/lib/node_modules/node-inspector/node_modules/v8-profiler

Хорошо, нет проблем. Но теперь, когда я запускаю which node-inspector, я не получаю никаких результатов. Очевидно, мне нужно указать его в /usr/local/bin (я думаю) или добавить этот путь к моему $PATH. Но это означало бы изменение этих значений при переключении версий узла, что, похоже, не соответствует тому, что должен делать nvm.

Есть ли лучший способ обновить путь к любым глобально установленным пакетам при использовании nvm и переключении версий?


person jcollum    schedule 04.06.2015    source источник


Ответы (2)


Но это означало бы изменение этих значений при переключении версий узла, что, похоже, не соответствует тому, что должен делать nvm.

Здесь вы найдете длинное обсуждение этой проблемы, которое я интерпретирую как противоречащее вашей идее о «что должен делать nvm».

Мое личное решение имеет 2 аспекта: во-первых, не устанавливайте модули npm глобально, как описано в моем блоге здесь. Я обнаружил, что 95% моих библиотек npm, которые рекомендуют глобальную установку, работают лучше с версией узла, установленной любезно предоставленной nvm и привязанной к проекту через файл .nvmrc в каталоге проекта, и специфичные для проекта модули npm в каталоге node_modules внутри проекта. . Действительно, для таких вещей, как Bower, gulp, grunt, stylus, less, browserify, uglify и т. д., локальная установка и приличное управление PATH работают просто отлично.

Для вещей, которые действительно менее специфичны для проекта, я просто устанавливаю общий узел в ~/shared_node.js и устанавливаю туда что-то, постоянно помещаю ~/shared_node.js/node_modules/.bin в свой PATH и называю это хорошим. На данный момент у меня есть всего несколько вещей, таких как html2jade, база ключей и инспектор узлов.

person Peter Lyons    schedule 05.06.2015
comment
У меня проблемы с частью управления PATH. У меня возникает проблема Bower: command not found, и я почти уверен, что это потому, что я неправильно указал путь. - person Evan Caldwell; 17.09.2015
comment
Пометка как ответ только для Во-первых, не устанавливайте модули npm глобально — хороший совет, особенно в эпоху npx - person jcollum; 28.12.2020

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

я использую рыбу. и мне просто нужно добавить такой путь в $PATH

/home/{USER}/.nvm/versions/node/{VERSION}/lib/node_modules/bin

поэтому я положил это в свой config.fish

set PATH $PATH (npm root -g)/bin
  • если вы измените версию своего узла. ваш $PATH изменится, и вы должны установить те пакеты, которые хотите для новой версии
person Mohammad Javad Ghasemy    schedule 25.12.2020