gpt4 book ai didi

node.js - 使用相对路径时 Electron 中 require() 的意外行为

转载 作者:搜寻专家 更新时间:2023-11-01 00:36:34 24 4
gpt4 key购买 nike

我希望能对以下问题做出一些澄清:

我开始学习 Electron ,想设置一个小例子来测试需求机制。

文件夹结构如下:

main.js
node_modules
html
|-index.html
[...]
js
|-test.js
|-test2.js

test2.js 只包含一个我导出的函数。

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

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

产生一个找不到模块,同时:

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

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

--|EDIT(add):进一步的测试让我假设路径是相对于 html 目录设置的。例如:

console.log(__dirname)

test.js 中打印 html 目录的路径。|--

为什么会这样?我是否犯了设置错误?

(PS:我发现有几篇文章提供了有关避免使用 ../../../someModule 的信息,但据我所知,所有文章都假设了相对于所需文件的“路径”,所以这对我没有帮助解决我的问题。)

最佳答案

确实,require(...)可以解析相对路径,但来自本身是必需的文件。

你的意思是 test.jsindex.html使用 ,并且您收到的找不到模块错误消息表明它是使用 src 包含的<script> 的属性标签:

<script src="../js/test.js"></script>

尝试使用 require()改为声明:

<script>require('../js/test.js');</script>

然后是test.js里面的代码应该可以正常工作:

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

关于node.js - 使用相对路径时 Electron 中 require() 的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49582030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com