// 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 许可协议