Node.js - 使用NVM配置$ NODE_PATH

Nic*_*idt 23 javascript node.js npm nvm

在路上设置Node.jsNVM,我用的时候偶然发现了一个错误Yeoman.我收到了错误

Cannot find module 'yeoman-generator'
Run Code Online (Sandbox Code Playgroud)

经过一番研究后,在StackOverflow上发现了这篇文章,这也是我的问题所在.现在我尝试这样做了,但我遇到的问题是,我想在系统中使用不同版本的Node.js并使用NVM.如果Node.js版本在NVM的帮助下发生变化,现在可以动态更改$ NODE_PATH吗?因为我的$ NODE_PATH目前是空的(这导致了问题).

$ which node
/Users/dschmidt/.nvm/v0.10.35/bin/node
$ which npm
/Users/dschmidt/.nvm/v0.10.35/bin/npm
$ echo $NODE_PATH
[empty]
Run Code Online (Sandbox Code Playgroud)

对于我得到的每一个答案都会很高兴.我在网上搜索了这个,但找不到一篇关于此的帖子.

jet*_*har 20

添加以下内容.bashrc.zshrc帮助

export NODE_PATH=$NODE_PATH:`npm root -g`
Run Code Online (Sandbox Code Playgroud)

我不是专家,这是不是很好.

Pensierinmusica指出的消息来源


Kos*_*aut 12

运行后,NVM将设置节点和npm的路径

nvm use <node_version>
Run Code Online (Sandbox Code Playgroud)

但是,这仅适用于当前shell,除非您设置默认版本,否则任何新shell都不会选择npm版本,直到您运行上一个命令为止

nvm alias default <node_version>
Run Code Online (Sandbox Code Playgroud)

瞧!您在打开的任何新shell中都有npm和node的工作版本.

要更改默认值,只需使用要使用的新版本节点再次运行它.例如

nvm alias default v5.4.0
Run Code Online (Sandbox Code Playgroud)

  • 你的答案是关于一般的nvm用法.原始查询是关于根据nvm节点版本设置NODE_PATH变量(动态地是这里的关键字) (2认同)
  • 这似乎并没有解决问题。设置好之后,echo $ NODE_PATH对我来说还是空白。 (2认同)
  • 事实上,这并没有回答问题...nvm alias ..设置将作为命令使用的节点/npm版本,但它没有设置 $NODE_PATH 变量,某些应用程序需要该变量才能正常工作:/ (2认同)

GN.*_*GN. 6

我想出了一种方法来使这项工作。

在您的~/.bash_rc文件中或~/.zsh_rc添加以下行:

export NODE_PATH=`which node`
Run Code Online (Sandbox Code Playgroud)

打开新的shell或运行它source ~/.bash_rc以获取更改

  • zshrc 中的`which node` 似乎引用了系统节点。`which $NODE_PATH ` 输出 `/usr/local/bin/node`。然后`/usr/local/bin/node -v` 是我的系统节点 (2认同)