Node.js 在电子应用程序中访问和打包外部文件

Node.js 在电子应用程序中访问和打包外部文件,node.js,electron,Node.js,Electron,我正在构建我的第一个包含应用程序内容(JSON文件)的electron应用程序 我的问题是,在使用electron build打包后,我无法访问应用程序内容 我将讨论中的JSON文件(mvdb.JSON)添加到外部资源中,并在主进程中解析路径 package.json "build": { "appId": "com.example.app", "extraResources": ["mvdb.json"], "mac": { "category": "you

我正在构建我的第一个包含应用程序内容(JSON文件)的electron应用程序

我的问题是,在使用electron 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!='生产
//加载电影数据库
const MOVIE\u DB\u PATH=isDev?join(_dirname,'mvdb.json'):path.join(process.resourcesPath,'mvdb.json');
...
fs.readFileSync(电影数据库路径)
macOS包构建在Contents/resources文件夹中有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')
您需要向后移动一个文件夹