有没有一种方法可以知道Node.js中require/resolve试图查找模块的位置?

4

我正在为一个 Node.js 库开发插件系统,但在运行一些测试时,发现 "require" 和 "require.resolve" 函数找不到包的位置,这让我有点困扰。我一直收到以下类似的错误:

Cannot find module 'plugin-name' from "index.jS"

我知道通常情况下Node.js会在整个目录结构中查找"node_modules"目录,但由于我正在进行一些测试模拟,所以事情并不那么简单,如果我能打印一些日志或调试信息来查看Node.js尝试查找包的路径,那将非常有帮助。

有什么想法吗?

提前感谢。


这不是全局的“nodepath”吗?(https://www.npmjs.com/package/nodepath) - Pointy
您可以将所需的节点模块存根化,https://dev59.com/1W025IYBdhLWcg3w4Z-u - thedeliciousmuffin
1个回答

1
我认为module.paths可能是最有用的。在本地运行时,我得到了一个完整的搜索路径数组,其中包括整个树上的node_modules目录,以及~/.node_libraries~/.node_modules'/usr/local/lib/node'
文档简单地说:

module.paths
模块的搜索路径

这里有一个算法的非常好的描述:https://nodejs.org/api/modules.html#modules_all_together

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接