【发布时间】:2020-08-06 17:55:32
【问题描述】:
请耐心等待,这里有点二人组。 首先,我认为如果我的主要 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(),它成功了,似乎可以访问变量在主脚本中声明。
我试图理解为什么会这样,并且我可以看到两个可能相关或不相关的差异。
- 我没有使用 webpack/babel,所以 JS 是我不使用的原始形式 通常使用。
- 我的
require()语句只有在我给出 相对于应用程序根目录而不是文件的完整路径 要求。
谁能解释一下为什么 required 模块可以访问 Electron 中 requirer 的属性?
谁能解释为什么我的 require 语句只适用于 Electron 中的根相对路径?
谢谢大家:)
编辑
这一切都发生在渲染器中。使用标准<script> 标记将主 JS 加载到我的 index.html 中。然后它需要那里的模块。
【问题讨论】:
-
这是渲染器的代码吗?
-
@tpikachu - 是的(已编辑我的问题)。主脚本加载到 index.html
-
我明白了。使用
require表示您将在浏览器中使用 Node API -
为此,您应该创建 nodeIntgeartion 为 true 的 browserWindow
标签: javascript electron require electron-forge