当前位置: 首页 > 面试题库 >

Node.js在Windows上找不到已安装的模块

仲学真
2023-03-14
问题内容

我目前正在Windows上学习nodejs。通过npm.cmd在全局安装了几个模块,nodejs无法找到已安装的模块。以玉为例

npm install jade -g

Jade安装在目录中"C:\Program Files (x86)\nodejs\node_modules",但以下代码将失败并显示"Cannot find module 'jade'"错误,

var jade = require('jade');

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


问题答案:

添加一个名为的环境变量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

值得一提的NODE_PATH是仅在Node应用程序中导入模块时使用。如果要在CLI中使用全局安装的模块的二进制文件,则需要将其也添加到您的中PATH,但不要添加任何node_modules部分(例如,%AppData%\npm在Windows
7/8/10中)。

旧故事

我本人对node.js相当陌生,因此我可能并不完全正确,但是根据我的经验,它是这样工作的:

  1. -g 并不是安装全局库的方法,它只是将它们放置在系统路径上的一种方法,因此您可以从命令行调用它们,而无需编写它们的完整路径。它是有用的,例如,然后点应用的转换本地文件,如 -如果你安装它在全球范围,你可以在任何目录中使用它。
  2. node.js本身并未查看npm全局目录,而是使用另一种算法来查找所需文件:http : //nodejs.org/api/modules.html#modules_file_modules(基本上是扫描路径中的每个文件夹,从头开始从当前的 node_modules 文件夹中进行检查)。


 类似资料:
  • 我刚从一个朋友那里用dmg文件安装了jre 1.8。我需要从中运行一个项目。 智能ide找不到它,我也找不到。 我检查可能的结果,user/username/java/javavirtual机/jdk/...但是我在任何地方都找不到这个文件夹。我看了以前安装的java版本被隐藏,但我仍然无法找到它。 如果可能的话,请帮助我。

  • 问题内容: 问题答案: 您是否使用-g选项安装了模块?我认为并不是每个模块都打算在全球范围内安装,而是尝试为要创建的项目在本地安装(npm install),然后检查错误是否仍然存在。

  • 问题内容: 我在尝试在Windows 10上安装Node时遇到了一些问题,并找到了解决方案。 错误如下: C:\ Users \ Stephan> npm 错误:ENOENT,状态为“ C:\ Users \ Stephan \ AppData \ Roaming \ npm” 解决方案如下。 问题答案: 原始答案: 请严格按照以下步骤操作: http://nodejs.org/download/

  • 问题内容: 我正在开发一个slackbot。导入slackclient后,我得到了。 我尝试了所有选项并遵循了本文中显示的建议-Python找不到已安装的模块(’slackclient’)。根据这些建议,我安装了Slack,但在导入WebClient时收到以下错误。 我检查了看起来不错的松弛版本 有什么建议我可能做错了什么? 问题答案: 使用slackclient版本2 slackclient =

  • 错误: 回溯(最近一次调用):文件“./video_qt.py”,第8行,从PyQt5导入QtWidgets,QtCore importerror:/usr/lib/x86_64-linux-gnu/libqt5gui.so.5:找到版本`qt_5'not>(由/usr/local/lib/python3.5/dist-packages/PyQt5/QtWidgets.so所需) 但它就在那里:

  • 问题内容: 我有以下目录结构: 我尝试在从server.js导出的app.js中调用函数,我这样做: 但是得到错误: 我如何正确包含它? 谢谢。 问题答案: 该路径必须相对于您当前所在的文件。 用