我正在执行以下操作来实现此 require
在 <app></app>
中可见
index.html:
<script>
var electron = require('electron')
</script>
<app></app>
<script src="bundle.js"></script>
App.vue:
const ipc = electron.ipcRenderer
console.log(ipc)
但是我得到un-used
和un-defined
ESLint 出现 var 错误,所以我决定这样做:
requires.js:
var electron = require('electron')
exports.electron = electron
index.html:
<script src="requires.js"></script>
</head>
<body>
<app></app>
<script src="bundle.js"></script>
但现在我收到此错误:requires.js:3 Uncaught ReferenceError: exports is not defined
.
导出和导入 Electron 的正确方法是什么 require
?
注意:需要 electron
直接在App.vue
不起作用。您只能要求 electron
在index.html
最佳答案
您似乎在这里尝试将 electron
定义为全局变量;为此,您可以在第一个示例中的 index.html 中设置 window.electron = require('electron')
。 (它将在您的bundle.js中可用)
但是,对于这种不好的做法,使用全局变量并不是必要的。您应该做的就是在代码中使用 require
。你说这不起作用:它不起作用的原因可能是你正在使用 webpack 或类似的东西来创建 bundle.js
。此外,您可能在 Node 中而不是 Electron 中运行捆绑过程,因此 require('electron')
无法按预期工作。请注意,它可以在您的 index.html
中运行,但它不是 bundle 的一部分。
如果您想继续使用此设置,您可以重命名 Electron 的 require,以区分捆绑期间解析的 require
和运行时解析的 require
。换句话说,在 index.html
的脚本标记中使用 window. ElectronRequire = require
,然后在代码中使用 electronRequire('electron')
.
话虽如此,为什么首先要捆绑所有东西呢? Electron 具有完整的 Node 集成,因此您可以使用常规 Node 模块;文件也不通过 HTTP 发送,因此将所有内容捆绑到一个文件中几乎没有什么好处。
关于javascript - 如何导出分配给变量的要求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36137339/