Cos*_*ore 230 windows module require node.js npm
我正在Windows上学习nodejs.使用npm.cmd全局安装了几个模块,nodejs无法找到已安装的模块.以玉为例,
npm install jade -g
Run Code Online (Sandbox Code Playgroud)
Jade安装在目录中"C:\Program Files (x86)\nodejs\node_modules",但以下代码将失败并显示"Cannot find module 'jade'"错误,
var jade = require('jade');
Run Code Online (Sandbox Code Playgroud)
但是,当本地安装jade时,代码将成功运行(在npm中没有-g选项).我不想使用本地安装的模块,这对我来说是浪费磁盘空间,有人可以帮助我使全局安装的模块在Windows上运行吗?
Ale*_*nov 335
添加一个名为的环境变量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).
Windows 7+中的快速解决方案就是运行:
rem for future
setx NODE_PATH %AppData%\npm\node_modules
rem for current session
set NODE_PATH=%AppData%\npm\node_modules
Run Code Online (Sandbox Code Playgroud)
值得一提的NODE_PATH是,仅在导入Node应用程序中的模块时使用.如果要在CLI中使用全局安装的模块二进制文件,则还需要将其添加到您的PATH,但没有node_modules部分(例如%AppData%\npm在Windows 7/8/10中).
老故事
我自己对node.js很陌生,所以我可能不完全正确,但根据我的经验,它的工作原理如下:
有关更多详细信息,请参阅类似问题:如何使用npm全局安装模块?
小智 34
如果你在windows7平台上,也许你应该像这样更改NODE_PATH:
%AppData%\npm\node_modules
Vit*_*iev 29
我知道我可以唤醒一个僵尸,但我认为这仍然是一个问题,如果您需要在Windows 7上全局访问节点模块,您需要将其添加到您的全局变量路径:
C:\Users\{USER}\AppData\Roaming\npm
Run Code Online (Sandbox Code Playgroud)
重要的是:只有这个没有node_modules部分,我花了半个小时看到这个.
And*_*-lo 18
为了使它在Windows 10上工作,我通过将文件夹添加%USERPROFILE%\AppData\Roaming\npm到我的PATH来解决它.已经\node_modules附加这样的:%USERPROFILE%\AppData\Roaming\npm\node_modules\没有为我工作.
mar*_*rko 13
我将引用此节点的博客文章 ...
一般来说,经验法则是:
- 如果您要在程序中安装要使用的东西,请使用require('whatever'),然后在项目的根目录下在本地安装.
- 如果您要在shell中安装要在shell中使用的东西,请在命令行或其他东西上安装它,以便全局安装它,以便它的二进制文件最终位于PATH环境变量中.
...
当然,在某些情况下,您希望同时执行这两项操作.Coffee-script和Express都是具有命令行界面的应用程序以及库的良好示例.在这些情况下,您可以执行以下操作之一:
- 在两个地方安装它.说真的,你的磁盘空间不足吗?这很好,真的.它们是一个很小的JavaScript程序.
- 全局安装,然后npm link coffee-script或npm link express(如果你在支持符号链接的平台上.)那么你只需要更新全局副本来更新所有的符号链接.
Sơn*_*yễn 11
要缩短它,请npm link jade在您的app目录中使用.
Kon*_*Kao 11
试图添加/编辑环境变量,并得出结论:
User variables(上方框)而不是System variables(下方); 否则你必须"以管理员身份运行"才能使其正常运行.;%AppData%\npm到Path以将其用作命令行工具(如果支持,则jshint和grunt-cli).NODE_PATH和设置%AppData%\npm\node_modules,以require('<pkg_name>')在脚本,而无需安装在项目目录.(但是如果您正在使用Vista和更新版本的操作系统,npm link则建议使用此要求mklink.)测试环境:
我有一个糟糕的时间让全球模块工作.最后,我明确地添加C:\Users\yourusername\AppData\Roaming\npm到系统变量下的PATH变量.我还需要将此变量放在列表中的nodejs path变量之前.
我正在运行Windows 10.
我在Windows 7上遇到了这个问题,正在运行
npm install -g gulp
Run Code Online (Sandbox Code Playgroud)
以普通用户身份登录时作为管理员.
解决方案:当执行与普通用户相同的安装(而不是"以管理员身份运行"为cmd)时,一切都很好.我想这与默认安装和搜索路径有关.