我有一个js应用程序(与Electron一起打包),我希望加载一个yaml文件。我打包应用程序后,以下工作正常,因为app.getAppPath()
允许我访问app.asar
文件,但在开发过程中,它返回路径\node_modules\electron-prebuilt\dist\resources\default_app.asar
。
fs.readFileSync(`${app.getAppPath()}/src/app/data/items.yml`, 'utf8')
有没有办法解决这个问题?我的yaml文件是否应该与应用程序的其余部分放在同一目录中?
答案 0 :(得分:1)
将path
模块与内置的__dirname
一起使用,构建相对于源文件的资源的文件路径,在开发和打包构建之间不会改变相对路径。例如,假设以下目录结构:
src/
app/
browser/
main.js
data/
items.yml
您应该在items.yml
中引用main.js
,如下所示:
path.join(__dirname, '..', 'data', 'items.yml')