【问题标题】:Executable Electron App cannot find module可执行电子应用程序找不到模块
【发布时间】:2021-08-20 21:31:06
【问题描述】:

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

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

 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 run package-win,它在发布构建文件夹中创建了可执行文件,但打开可执行文件会导致错误

【问题讨论】:

  • 这能回答你的问题吗? Executable Electron App cannot find module
  • @Joshua 他们已经发布了两次相同的问题。
  • @Joshua 我在发布问题时遇到了服务器错误。我又点了发帖。估计发了两次。我删除了另一个问题
  • @KevinM.Mansour 我明白了,我尝试以重复的方式关闭,但我想这不是我应该做的,你还有什么建议吗?还是我们应该把这个问题搁置一旁?
  • 我删除了重复的问题

标签: javascript node.js electron


【解决方案1】:

我认为您的问题是--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

Also see this StackOverflow question

【讨论】:

  • 删除 --asar 解决了这个问题。谢谢1
猜你喜欢
  • 2016-12-07
  • 2017-02-02
  • 2016-11-30
  • 2020-06-28
  • 2018-07-13
  • 2016-02-28
  • 1970-01-01
  • 2020-06-07
  • 2020-11-15
相关资源
最近更新 更多