Node.js - 使用NVM配置$ NODE_PATH

时间:2015-01-10 13:09:11

标签: javascript node.js npm nvm

在我使用Node.js设置NVM时,我在使用Yeoman时偶然发现错误。我有 错误

Cannot find module 'yeoman-generator'

经过一番研究后我发现了this post on 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]

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

4 个答案:

答案 0 :(得分:15)

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

export NODE_PATH=$NODE_PATH:`npm root -g`

我不熟悉这是不是很好。

Pensierinmusica指出

source

答案 1 :(得分:11)

NVM将在您运行

后设置节点和npm的路径
nvm use <node_version>

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

nvm alias default <node_version>

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

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

nvm alias default v5.4.0

答案 2 :(得分:4)

我想办法让这项工作成功。

class valueResults(models.Model): value_id = models.ForeignKey(value) result_date = EncryptedDateTimeField() status_code = EncryptedCharField(max_length=25) value = EncryptedIntegerField() test_started = EncryptedDateTimeField() class value(models.Model): value_id = EncryptedCharField(primary_key=True, unique=True, max_length=100) valuetype_id = models.ForeignKey(valueType) dateitemord = EncryptedDateTimeField() status = EncryptedCharField(max_length=100) item_id = models.ForeignKey(Items) user_id = models.ForeignKey(User) class Items(models.Model): item_id = models.CharField(primary_key=True,max_length=100) mailed_date = EncryptedDateTimeField() received_date = EncryptedDateTimeField() last_viewed = EncryptedDateTimeField() dateitemsent = EncryptedDateTimeField() itemidvalue = EncryptedCharField(max_length=100) itemsent = EncryptedCharField(max_length=25) itemret = EncryptedCharField(max_length=25) dateitemret = EncryptedDateTimeField() status = EncryptedCharField(max_length=25) 文件或~/.bash_rc添加此行:

~/.zsh_rc

打开新shell或运行此export NODE_PATH=`which node` 以获取更改

答案 3 :(得分:1)

这(取自 GN. 和 Nick)对我来说效果很好,但我需要将它添加到 ~/.bash_profile,因为我在 Mac 上使用 Bash 作为外壳

export NODE_PATH=`which node`