我现在正在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上工作?


当前回答

从我使用win8.1的经验来看,npm在上面安装模块 C:\Users\【用户名】\ AppData \ \ npm \ node_modules徘徊 但他却继续搜索 C:\Users\【用户名】\ node_modules。

一个简单的解决方案参考模块在应用程序的全路径:

var jsonminify = require("C:/Users/Saulius/AppData/Roaming/npm/node_modules/jsonminify");

其他回答

对于windows,每个人都说你应该为nodejs和npm模块设置环境变量,但你知道为什么吗? 对于一些模块,他们有命令行工具,安装模块后,有[模块]。cmd文件在C:\Program Files\ nodejs中,用于在窗口命令中启动。因此,如果您没有将包含cmd文件的路径添加到环境变量% path %,则无法通过命令窗口成功启动它们。

我知道我可以唤醒一个僵尸,但我认为这仍然是一个问题,如果你需要全局访问Windows 7上的节点模块,你需要将这个添加到你的全局变量路径:

C:\Users\{USER}\AppData\Roaming\npm

重要的是:只有这个没有node_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 10,我必须在本地安装gulp文件夹:

C:\Users\myaccount\AppData\Roaming\npm\ node_modules

npm install gulp

这修复了我的“吞咽不被识别”的问题

只需从这里下载并重新安装节点,这将修复所有路径问题。

不要忘记重新启动命令提示符或终端。