同学你好
新版的 electron 已经严格控制了 require 的用法,所以在这里你有无法直接使用 require。我在 2024 年更新了关于新版 electron 的基础知识,在第二章,强烈建议同学再看一下。
这里假如想使用在 js 中使用 require,需要使用 preload 脚本结合 nodeIntergration 的方式,请看 2-8 小节:https://coding.imooc.com/lesson/384.html#mid=80206
简单代码:
创建 settings window 的时候带着这几个参数:
const settings = new BrowserWindow({
...
webPreferences: {
nodeIntegration: true,
preload: path.join(__dirname, 'preload.js')
}
})
preload.js 暴露一下
const { contextBridge } = require('electron')
contextBridge.exposeInMainWorld('require', require)
然后在 settings.html 改成
<script src="./settings.js"></script>
最后把 settings 中的 require 都改成 window.require