忍受我,这里是一个两方的人。
首先,我是否正确地认为,如果我的主要 JS 是这样设置的..
const myModule = require('./myModule');
let parentVar = 'foo';
myModule.test();
..我像这样设置了所需的模块..
module.exports = {
test: ()=>{
console.log(parentVar);
}
}
..当主脚本调用
myModule.test()
它应该抛出一个错误,因为它无法访问 parentVar
?这是我在传统 Web 构建中使用模块的经验和理解。
现在,我正在构建一个 Electron 应用程序(使用 Electron Forge )在这里我可以调用
myModule.test()
它成功了,似乎可以访问主脚本中声明的变量。我试图理解为什么会这样,并且我可以看到两个可能相关或不相关的差异。
通常与。
require()
只有当我给出相对于应用程序根目录而不是文件的完整路径
要求。
任何人都可以解释为什么所需的模块可以访问 Electron 中需求者的属性吗?
谁能解释为什么我的 require 语句仅适用于 Electron 中的根相对路径?
谢谢大家:)
编辑
这一切都发生在渲染器中。使用标准
<script>
将主 JS 加载到我的 index.html 中。标签。然后它需要那里的模块。
最佳答案
经典的简单易懂的问题。
在 html 中包含我的主脚本的地方,我只需要给标签一个 type="module"
.我想如果没有这个脚本只是加载到页面中而没有任何模块化 package ,这就是为什么该变量可以全面使用。
在我的 index.html
脚本标签现在看起来像这样..<script type="module" src="js/app.js"></script>
关于javascript - 从 Electron 中所需的 JS 模块访问父变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61386691/