Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何知道是调用了全局模块还是本地模块?_Javascript_Node.js_Mocha.js_Node Modules - Fatal编程技术网

Javascript 如何知道是调用了全局模块还是本地模块?

Javascript 如何知道是调用了全局模块还是本地模块?,javascript,node.js,mocha.js,node-modules,Javascript,Node.js,Mocha.js,Node Modules,通过在执行npm安装时添加-g,可以在本地级别或全局级别安装节点模块 如果一个模块(例如mocha)在本地和全局安装,当我需要(“mocha”)时,将加载哪个模块 我如何知道现在节点的执行环境中正在加载哪一个呢?如果所有其他操作都失败,您可以使用: $ export NODE_DEBUG=module 然后运行您的命令。这将为您提供加载的所有模块的详细日志以及它们的来源 如果只需要一个命令,可以运行: $ NODE_DEBUG=module <command> $NODE\u D

通过在执行
npm安装时添加
-g
,可以在本地级别或全局级别安装节点模块

如果一个模块(例如
mocha
)在本地和全局安装,当我需要(“mocha”)时,将加载哪个模块


我如何知道现在节点的执行环境中正在加载哪一个呢?

如果所有其他操作都失败,您可以使用:

$ export NODE_DEBUG=module
然后运行您的命令。这将为您提供加载的所有模块的详细日志以及它们的来源

如果只需要一个命令,可以运行:

$ NODE_DEBUG=module <command>
$NODE\u DEBUG=模块

唯一的警告是,这会显示大量信息。因此,
grep
是您的朋友。

节点将首先搜索本地模块,如果在那里找不到正确的模块,它将在其他地方继续搜索,如图所示:


您应该能够使用
require.resolve('mocha')
来确定当前加载模块的位置。这样你就可以知道哪一个被加载了。如果它位于您的项目目录下-它是本地的-否则它是全局的。

我认为应用程序在项目运行时首先在本地搜索,如果找到它,将使用它。我这样认为是因为package.json允许在依赖项和libs中进行一些配置。我认为您不能在代码中检查,而是在package.json文件中检查。谢谢,这很有帮助。