我现在正在Windows上学习nodejs。有几个模块是通过npm全局安装的。nodejs无法找到已安装的模块。以玉为例,

npm install jade -g

Jade安装在“C:\Program Files (x86)\nodejs\node_modules”目录下,但下面的代码将失败,并提示“无法找到模块' Jade '”错误。

var jade = require('jade');

然而,当jade在本地安装时(npm中没有-g选项),代码将成功运行。我不想使用本地安装的模块,这对我来说是浪费磁盘空间。如何使全局安装的模块在Windows上工作?


当前回答

对于我来说,在Windows 10 npm配置设置前缀%AppData%\npm\node_modules

其他回答

我也有同样的问题,试图用npm install -g bower安装bower

我认为这是因为node是由另一个用户安装的,而不是我。

我卸载了节点,然后重新安装了它。在安装过程中,我看到了Add to PATH > npm模块选项的文本:

节点安装中的消息

节点安装完成后,我再次执行了npm install -g bower。现在凉亭起作用了。

当然没有必要重新安装节点与自己的用户,像我。解决方案必须通过NODE_PATH或PATH变量,正如其他用户所解释的那样。

这只是为了说明,只有当node已经由其他用户安装(或者在安装过程中没有标记Add to PATH > npm modules选项)时,才会发生此问题。

我无意中发现了这个问题,因为我想在windows 10的新电脑上使用node.js和visual studio 2015。我在windows 7、8和8.1上使用node.js,从来没有问题node.js找到一个模块。我使用一个遗留的node.js 0.10.39,因为我必须使用这个版本,因为串行和RFXCOM模块。

windows 10的答案是在环境变量中使用C:\Users\User\node_modules设置NODE_PATH。

我在Windows 7上运行时遇到了这个问题

npm install -g gulp

以管理员身份登录,同时以普通用户身份登录。

解决方案:当以普通用户执行相同的安装时(而不是“以admin身份运行”cmd),一切正常。我猜这与默认的安装和搜索路径有关。

以上所有的答案都不适合我。唯一有效的方法是将%AppData%\npm添加到环境Path变量中,并删除C:\Program Files\nodejs.中的两个ng文件

ng包没有安装在C:\Program Files\nodejs\ node_modules中,因此使用nodejs目录中的ng二进制文件显然是行不通的。

我不知道为什么它在这个目录中搜索,因为我已经配置了 —PATH环境变量 - C:\Users\MyUser目录下的.npmrc —尝试添加系统变量和/或NODE_PATH

简而言之,在你的应用目录中使用npm link jade。