javascript - 可执行电子应用程序找不到模块
问题描述
我有一个可以在本地运行的电子应用程序,但是在创建可执行文件时它找不到模块(JSON 文件),我不知道为什么。
我得到的错误是“未捕获的异常”找不到模块'./data/background/background.json' Require 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 它在发布构建文件夹中创建了可执行文件,但打开可执行文件会导致错误
解决方案
我认为你的问题是--asar
选项。
因为您打开了此选项,所以electron-packager
会将您的源代码打包到一个包含您的app.asar
文件夹的文件中。data
因为您的data
文件夹现在已与所有其他源代码一起压缩到此app.asar
文件中,您的代码将无法再访问它。
解决方案1:
- 取出:
--asar
解决方案2:
- 添加此选项:
--extra-resource=\"./data\"
- 这将告诉
electron-packager
不要包含./data
在app.asar
.
推荐阅读
- angular - 如何在角数符号“#”中验证模板驱动的表单
- javascript - 为什么我定义的范围在 javascript 中不起作用?
- http - 为什么当我在 ip 而不是主机名上卷曲时需要额外的 `-k` 标志?
- python - pd.get_dummies() 带分隔符和计数
- postgresql - 违反外键约束
- python - 有没有办法自定义 PyInputPlus 显示的错误消息?
- css - 如何知道浏览器窗口大小?
- google-glass - 如何在 Google Glass Enterprise Edition 2 上启用调试模式?
- bash - 删除每一行的反斜杠
- git - 如何在不使用 gerrit ui 的情况下添加补丁集描述