从我对win8.1的经验来看,npm安装了模块 C:\Users\[UserName]\AppData\Roaming\npm\node_modules 但是他们会搜索它们 C:\Users\[UserName]\node_modules 。
C:\Users\[UserName]\AppData\Roaming\npm\node_modules
C:\Users\[UserName]\node_modules
一个简单的解决方案参考模块应用于完整路径:
var jsonminify = require("C:/Users/Saulius/AppData/Roaming/npm/node_modules/jsonminify");
只需从中下载并重新安装节点即可 这个 这将解决所有路径问题。
不要忘记重新启动命令提示符或终端。
添加一个名为的环境变量 NODE_PATH 并将其设置为 %USERPROFILE%\Application Data\npm\node_modules (Windows XP), %AppData%\npm\node_modules (Windows 7/8/10),或者npm最终在Windows风格上安装模块的地方。要一劳永逸地完成它,请在“系统属性”对话框的“高级”选项卡中将其添加为“系统”变量(运行 control.exe sysdm.cpl,System,3 )。
NODE_PATH
%USERPROFILE%\Application Data\npm\node_modules
%AppData%\npm\node_modules
control.exe sysdm.cpl,System,3
Windows 7+中的快速解决方案就是运行:
rem for future setx NODE_PATH %AppData%\npm\node_modules rem for current session set NODE_PATH=%AppData%\npm\node_modules
值得一提的是 NODE_PATH 仅在导入节点应用程序中的模块时使用。如果要在CLI中使用全局安装的模块二进制文件,则还需要将其添加到您的 PATH 但没有 node_modules 部分(例如 %AppData%\npm 在Windows 7/8/10)。
PATH
node_modules
%AppData%\npm
老故事
我对node.js自己也很陌生,所以我可能不完全正确,但根据我的经验,它的工作原理如下:
查看类似问题了解更多详情: 如何使用npm全局安装模块?
对于windows,每个人都说你应该为nodejs和npm模块设置环境变量,但是你知道为什么吗? 对于某些模块,他们有命令行工具,安装模块后,就有了 的 [模块] .CMD 强> 档案 的 C:\ Program Files \ nodejs 强> ,它用于在window命令中启动。因此,如果不将包含cmd文件的路径添加到环境变量中 的 %路径% 强> ,你不会通过命令窗口成功启动它们。
我知道我可以唤醒一个僵尸,但我认为这仍然是一个问题,如果您需要在Windows 7上全局访问节点模块,您需要将其添加到您的全局变量路径:
C:\Users\{USER}\AppData\Roaming\npm
重要的是:只有没有这个 node_modules 部分,我花了半个小时才看到这个。
试图添加/编辑环境变量,并得出结论:
User variables
System variables
;%AppData%\npm
Path
jshint
grunt-cli
require('<pkg_name>')
npm link
mklink
测试环境:
或者你可以添加 ~/.npmrc 对 字首 。我有 C:\Program Files\nodejs 为64 Win7。
~/.npmrc
C:\Program Files\nodejs
对于Windows 10,我必须在文件夹中本地安装gulp:
C:\用户\我的账户\应用程序数据\漫游\故宫\ node_modules
npm install gulp
这解决了我的“gulp未被识别”的问题
我有同样的问题,尝试安装凉亭 npm install -g bower
npm install -g bower
我想这是因为 的 节点由另一个用户安装 强> , 不是我。
我卸载了节点,然后重新安装它。在安装过程中,我看到了该文本的选项 添加到PATH&gt; npm模块 :
节点安装中的消息
节点安装后,我执行了 npm install -g bower 再次。然后凉亭工作。
当然没有必要像我一样用自己的用户重新安装节点。解决方案必须是通过 NODE_PATH 要么 路径 变量,正如其他用户所解释的那样。
这只是说明仅当节点已由另一个用户安装时(或者在安装期间选项),才会出现此问题 添加到PATH&gt; npm模块 尚未标记)。
我有一个糟糕的时间让全球模块工作。最后,我明确补充道 C:\Users\yourusername\AppData\Roaming\npm 到系统变量下的PATH变量。我还需要将此变量放在列表中的nodejs path变量之前。
C:\Users\yourusername\AppData\Roaming\npm
我正在运行Windows 10。
为了使它在Windows 10上工作,我通过添加文件夹解决了它 %USERPROFILE%\AppData\Roaming\npm 我的路径。有 \node_modules 附加像这样: %USERPROFILE%\AppData\Roaming\npm\node_modules\ 不适合我。
%USERPROFILE%\AppData\Roaming\npm
\node_modules
%USERPROFILE%\AppData\Roaming\npm\node_modules\
我在Windows 7上遇到了这个问题,正在运行
npm install -g gulp
以普通用户身份登录时作为管理员。
的 解: 强> 当执行与普通用户相同的安装(而不是“以管理员身份运行”为cmd)时,一切都很好。我想这与默认安装和搜索路径有关。
我只是引用这个节点的 博客文章 ...
一般来说,经验法则是: 如果您要在程序中安装要使用的东西,请使用require('whatever'),然后在本地安装它。 你的项目。 如果您要在shell中,在命令行上安装要使用的东西,请在全局安装它,以便它 二进制文件最终在您的PATH环境变量中。 ... 当然,在某些情况下,您希望同时执行这两项操作。 Coffee-script和Express都是具有的应用程序的好例子 命令行界面,以及库。在那些情况下,你可以 执行以下操作之一: 在两个地方安装它。说真的,你的磁盘空间不足吗?真的很好。他们是一个很小的JavaScript程序。 全局安装,然后npm链接coffee-script或npm link express(如果你在支持符号链接的平台上。)那么 您只需要更新全局副本以将所有符号链接更新为 好。 醇>
一般来说,经验法则是:
...
当然,在某些情况下,您希望同时执行这两项操作。 Coffee-script和Express都是具有的应用程序的好例子 命令行界面,以及库。在那些情况下,你可以 执行以下操作之一:
为了缩短它,请使用 npm link jade 在您的app目录中。
npm link jade
如果你在windows7平台上,也许你应该像这样更改NODE_PATH: %AppData%\npm\node_modules
我偶然发现了这个问题,因为我想在带有Windows 10的新计算机上使用带有visual studio 2015的node.js。我在Windows 7和8和8.1上使用了node.js。从来没有问题node.js找到一个模块。我使用遗留node.js 0.10.39,因为我必须使用此版本,因为串行和RFXCOM模块。
Windows 10的答案是使用C:\ Users \ User \ node_modules在环境变量中设置NODE_PATH。