问题:
我们有如下代码,表示在当前目录下有一个json配置文件

const configPath = path.join(__dirname, 'listen-usb-config.json')

在本地开发时,确实能正常工作,但是打包后,包的文件结构会发生变化,上面的路径其实已经不存在了,所以会导致打包后配置读取失败

解决方案:
使用electron的app.isPackaged区分是否为打包状态,然后使用不同的路径获取方式

import path from 'node:path'
import { app } from 'electron'

// 如果是打包状态,则获取exe文件的目录(将你的配置文件放到exe文件的目录下)
// 如果是非打包状态,则获取当前目录
const dirname = app.isPackaged ? path.dirname(app.getPath('exe')) : __dirname

热饭班长
3.7k 声望434 粉丝

先去做,做出一坨狗屎,再改进。