electron 中renderer.js中使用require('electron') 报错require is not defined

Posted 婧秋-fool

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了electron 中renderer.js中使用require('electron') 报错require is not defined相关的知识,希望对你有一定的参考价值。

在研究 渲染进程和主程序之前通信时,就在renderer.js 文件中写第一句代码

const {ipcRenderer} = require(\'electron\').ipcRenderer
 

就报错,然后我就寻寻觅觅,寻寻觅觅呀,估算也找了小半天时间,然后,

在我冷静下来仔细看看renderer.js 文件,在文件开头就有这样一句话

// This file is required by the index.html file and will
// be executed in the renderer process for that window.
// No Node.js APIs are available in this process because
// `nodeIntegration` is turned off. Use `preload.js` to
// selectively enable features needed in the rendering
// process.
这句话很重要就是,理解起来就是,这个renderer.js 不可以使用node.js,如果要使用,你需要去,启动XXXXX
看到这句话,百度起来就快了,网上给的答案在主进程中创建webPreference中修改他
nodeIntegration:true(默认的是false)
 
自问,我为啥呢么二,我也写了,然后再运行,报错依旧,我就很着急呀,why,
划重点:我拼错了,,,如果你也入坑,请仔细仔细检查,你是不是也把这个写错了。正确的写法是
webPreferences: {
      //注意大小写
      nodeIntegration:true,
      preload: path.join(__dirname, \'preload.js\')  
    }

 

以上是关于electron 中renderer.js中使用require('electron') 报错require is not defined的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 Electron 中使用的 html 文件?

Electron IPC 和节点集成

如何将 Python + Electron JS 编译成桌面应用程序(exe)

将 Electron 应用程序转换为 UWP 应用程序

Renderer2 在使用 d3 js - Angular 4 时不渲染 SVG 元素

在 Electron 应用程序中使用 console.log()