从 Electron 中所需的 JS 模块访问父变量

Access parent variables from required JS Modules in Electron

请耐心等待,这里有两个人。 首先,如果我的主 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() 和它成功了,似乎可以访问主脚本中声明的变量。

我试图理解为什么会这样,而且我可以看到两个可能相关或不相关的差异。

  1. 我没有使用 webpack/babel 所以 JS 是我不使用的原始形式 平时一起工作。
  2. 我的 require() 语句只有在我给出 相对于应用程序根目录的完整路径,而不是执行该操作的文件 要求。

谁能解释一下为什么 required 模块可以访问 Electron 中 requireer 的属性?

谁能解释为什么我的 require 语句只适用于 Electron 中的根相对路径?

谢谢大家:)

编辑 这一切都发生在渲染器中。主要 JS 正在使用标准 <script> 标记加载到我的 index.html 中。然后它需要那里的模块。

经典的 easy-when-you-know-how 问题。

我在 html 中包含我的主要脚本的地方我只需要给标签一个 type="module"。我想如果没有这个,脚本只是在没有任何模块化包装的情况下加载到页面中,这就是为什么变量可以全面使用的原因。

在我的 index.html 中,脚本标签现在看起来像这样..

<script type="module" src="js/app.js"></script>