我想用electron-react做一个框架得工具,需要导入外部得js文件,我通过dialog.showOpenDialog获取到了js得地址,但是无法用require引用这个文件,是哪里得问题
electron-react 通过dialog获得js文件地址如何引用
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- lshen01 2023-03-17 09:25关注
参考GPT和自己的思路:
首先,需要知道在 electron-react 中,可以使用 nodeIntegration:true 来开启 Node.js 的集成,这样就可以使用 node.js 的模块了,包括 fs、path 等等。另外,需要注意的是,在 electron-react 中使用 require 导入文件时,需要使用相对路径,即:'./filename.js'。
对于引用通过 dialog.showOpenDialog 获取到的文件地址的问题,可以先在渲染进程进行操作,读取此文件后将其传递给主进程,再在主进程中进行引用。示例代码如下:
在渲染进程中:
const { remote } = window.require('electron'); const fs = window.require('fs'); async function openFileDialog() { const result = await remote.dialog.showOpenDialog({ properties: ['openFile'], filters: [{ name: 'JavaScript', extensions: ['js'] }] }); const filePath = result.filePaths[0]; fs.readFile(filePath, 'utf-8', (err, data) => { if (err) throw err; // 将 data 传递给主进程 remote.getCurrentWindow().webContents.send('fileData', data); }); }
在主进程中:
const { ipcMain } = require('electron'); ipcMain.on('fileData', (event, content) => { // 在这里使用获取到的文件内容,注意使用相对路径 const module = require('./filename.js'); // ... });
这样就可以使用获取到的 js 文件内容了。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
- ¥15 电力市场出清matlab yalmip kkt 双层优化问题
- ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)