require('./settings.js') 问题
来源:9-11 添加设置窗口编码(二)

慕侠7578385
2024-06-07
require(’./settings.js’) 时 js 代码并没有引入,导致点击选择文件路径还有保存文件路径的按钮没有预想的交互效果。代码库地址:https://gitee.com/giaozhouzhou/cloud-doc.git,老师有空帮我看下,谢谢 !!
写回答
2回答
-
张轩
2024-06-09
同学你好
新版的 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
042024-06-12 -
张轩
2024-06-08
同学你好
请问你的 node 是什么版本?我用 16 和 18 安装的时候都会遇到 node-sass 以及 gyp 的错误。
012024-06-08
相似问题