当前位置: 首页 > 工具软件 > express-vue > 使用案例 >

electron-vue 的路径问题

钱劲
2023-12-01

1 问题来源

在使用sqlite3的时候,需要创建数据库表时,这时候很容易出现这个问题!!!提示:SQLITE_CANTOPEN unable to open database file
nodejs中内置了变量__dirname,electron-vue中内置了变量__static。在开发阶段的过程中,使用这两个变量来创建文件是没有问题。
例如当我使用path.join(__static,‘password.db’),然后想要创建这个password.db文件时,在开发阶段是没有问题,会成功创建。程序也能正常运行。但是!!打包之后,__dirname和__static的路径会被改写!!!

  • 假设打包过后的项目根路径为:F:\win-unpacked
  • __dirname和__static这两个路径将变为了:F:\win-unpacked\resources\app.asar
    • 路径多了resources\app.asar
    • 并且app.asar本身是electron打包生成的资源文件!!本身存在。所以你无法基于__dirname或者__static创建文件或文件夹!!

2 解决方案

将__dirname和__static 中的 "\app.asar"替换成空字符串。
即 path.join(__dirname.replace(‘app.asar’,‘’),‘password.db’)

这个错误我查了好久。。。直到我在界面当中展示了这个路径才知道这么回事。

 类似资料: