// main_window.js
const fs = require('fs')
function action() {
console.log(fs)
注意: action
函数在我按下 main_window
中的按钮时被调用。
但这给出了一个错误:
Uncaught ReferenceError: require is not defined
at main_window.js:1
我可以 按照这个接受的答案的建议 解决这个问题,方法是在初始化 main.js
时将这些行添加到我的 main_window
:
// main.js
main_window = new BrowserWindow({
width: 650,
height: 550,
webPreferences: {
nodeIntegration: true
但是, 根据文档,这不是最好的做法,我应该创建一个 preload.js
文件并在那里加载这些节点模块,然后在我的所有 renderer
中使用它 ---
过程。像这样:
main.js
:
main_window = new BrowserWindow({
width: 650,
height: 550,
webPreferences: {
preload: path.join(app.getAppPath(), 'preload.js')
preload.js
:
const fs = require('fs')
window.test = function() {
console.log(fs)
main_window.js
:
function action() {
window.test()
现在我的问题是,我应该在 --- 中编写我的 renderer
进程的大部分代码是不是违反直觉的 preload.js
(因为仅在 preload.js
可以访问 Node 模块),然后只调用每个 renderer.js
文件中的函数(例如这里, main_window.js
)?我在这里不明白什么?
原文由 Amir Shabani 发布,翻译遵循 CC BY-SA 4.0 许可协议