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

0
4
慕侠7578385
回复
张轩
回复 张轩:最新解决了页面报错的代码我已经提交上去了。现在项目运行是没有问题的。老师空了帮我看看 本节课中 script 标签为什么没有生效的问题,谢谢 !
2024-06-12
共4条回复

张轩

2024-06-08

同学你好

请问你的 node 是什么版本?我用 16 和 18 安装的时候都会遇到 node-sass 以及 gyp 的错误。

0
1
慕侠7578385
老师好,node 版本是14.11.0
2024-06-08
共1条回复

2024更新 Electron+React+七牛云实战跨平台桌面应用

开发一款自动云同步的 Markdown 文件管理软件

1252 学习 · 463 问题

查看课程