我正在构建具有应用程序内容(JSON文件)的第一个 Electron 应用程序。
我的问题是,使用 electronic-build 打包后,我无法访问应用程序内容。
我将有问题的JSON文件( mvdb.json )添加到外部资源,并在主流程中解析了路径。
package.json
"build": {
"appId": "com.example.app",
"extraResources": ["mvdb.json"],
"mac": {
"category": "your.app.category.type"
},
"win": { "target": ["portable", "NSIS"]
},
"directories": {
"output": "release"
}
},
main.js
const fs = require('fs');
const isDev = process.env.NODE_ENV !== 'production'
// Load MOVIE Database
const MOVIE_DB_PATH = isDev ? path.join(__dirname, 'mvdb.json') : path.join(process.resourcesPath, 'mvdb.json');
...
fs.readFileSync(MOVIE_DB_PATH)
macOS软件包的版本在Contents/Ressources文件夹中具有mvdb.json文件,但是启动后会收到错误消息
Uncaught Exception:
Error: ENOENT, mvdb.json not found in /Users/me/Documents/projects/screenwriters-delight/electron/release/mac/screenwriters-delight.app/Contents/Resources/app.asar
at createError (electron/js2c/asar.js:111:17)
at Object.fs.readFileSync (electron/js2c/asar.js:548:24)
at loadDB ...
有什么建议?
最佳答案
试试这个
path.join(process.resourcesPath, '..', 'mvdb.json')
您需要将一个文件夹移回。
关于node.js - 在 Electron 应用程序中访问和打包外部文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59469417/