Node.js 使用相对路径时,electron中require()的意外行为

Node.js 使用相对路径时,electron中require()的意外行为,node.js,electron,require,Node.js,Electron,Require,我希望就以下事项作出澄清: 我开始学习电子,并想建立一个小的例子,以测试需要的机制 文件夹结构如下: main.js node_modules html |-index.html [...] js |-test.js |-test2.js test2.js只包含一个我导出的函数 现在从我在线阅读的内容来看,require(…)应该解析相对路径,但是如果在test.js(在index.html中使用)中,我使用: 生成找不到的模块,而: 工作很好,我发现这很违反直觉,从SO和其他网站上的阅

我希望就以下事项作出澄清:

我开始学习电子,并想建立一个小的例子,以测试需要的机制

文件夹结构如下:

main.js
node_modules
html
 |-index.html
[...]
js
 |-test.js
 |-test2.js
test2.js只包含一个我导出的函数

现在从我在线阅读的内容来看,require(…)应该解析相对路径,但是如果在test.js(在index.html中使用)中,我使用:

生成找不到的模块,而:

工作很好,我发现这很违反直觉,从SO和其他网站上的阅读来看,我认为第一个版本也应该工作。进一步的测试(使用嵌套文件夹)表明该路径是相对于节点_模块的

--|编辑(添加):进一步的测试使我假设路径是相对于html目录设置的。例如:

console.log(__dirname)
在test.js中,打印html目录的路径|--

为什么会这样?我是不是犯了安装错误

(注:我发现有几篇帖子提供了关于避免../../../someModule的信息,但据我所知,所有帖子都假设了相对于所需文件的“路径”,因此这无助于解决我的问题。)

的确,
require(…)
可以解析相对路径,但它本身就是所需的文件

您指出
test.js
index.html
中使用,并且您收到的模块未找到错误消息建议使用
标记的
src
属性将其包括在内:

<script src="../js/test.js"></script>
那么
test.js
中的代码应该可以正常工作:

const aTest = require('./test2.js');
// aTest();

electron是仅安装在包.json中还是全局安装?我做了一个“npm列表-g electron”,但没有找到它,electron在我的包.json.json中被列为devDepenency!这就奏效了:)谢谢你为我澄清了这一点,我为你的回答迟迟没有回复而道歉!
<script src="../js/test.js"></script>
<script>require('../js/test.js');</script>
const aTest = require('./test2.js');
// aTest();