可执行的 Electron App 找不到模块

Executable Electron App cannot find module

我有一个 electron 应用程序可以在本地 运行ning 时运行,但是在创建可执行文件时它找不到模块(JSON 文件),我不确定为什么。

我得到的错误是“未捕获的异常”找不到模块'。/data/background/background。json'需要解雇:

 var background = require('./data/background/background.json');

这是导致错误的代码。我不明白,因为当我 运行 我的应用程序在本地使用 npm start 时,它可以工作。

为了部署我的应用程序,我 运行

npm install --save-dev electron-packager

我的 package.json 文件看起来像这样

{
  "name": "moveanimator",
  "version": "1.0.0",
  "description": "Create Move Animations for Fire Red",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "package-mac": "electron-packager . --overwrite --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns --prune=true --out=release-builds",
    "package-win": "electron-packager . electron-tutorial-app --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/icons/win/icon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\"Move Animation Creator\"",    
    "package-linux": "electron-packager . electron-tutorial-app --overwrite --asar=true --platform=linux --arch=x64 --icon=assets/icons/png/icon.png --prune=true --out=release-builds"
  },
  "author": "ortz3",
  "license": "ISC",
  "dependencies": {
    "bootstrap": "^5.0.2",
    "check-disk-space": "^3.0.1",
    "electron": "^13.1.4",
    "jquery": "^3.6.0"
  },
  "devDependencies": {
    "electron-packager": "^15.3.0"
  }
}

然后我 运行 npm 运行 package-win 在发布构建文件夹中创建了可执行文件,但打开可执行文件导致错误

我认为你的问题是 --asar 选项。

因为您启用了此选项electron-packager 会将您的源代码打包到一个app.asar 文件包括您的data 文件夹

因为您的 data 文件夹现在已与所有其他源代码一起压缩到此 app.asar 文件中,您的代码无法再访问它。

解决方案 1:

  • 取出:--asar

解决方案 2:

  • 添加此选项:--extra-resource=\"./data\"
  • 这将告诉 electron-packager 不要在 app.asar 中包含 ./data

Read more about --asar

Read more about --extra-resource