可执行电子应用程序无法找到模块



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

我得到的错误是"Uncaught Exception"找不到模块'./data/background/background。json' Require Sack:

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

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

要部署我的应用程序,我运行

npm install --save-dev electron-packager

和我的包。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不要在app.asar中包含./data

了解--asar

阅读更多关于--extra-resource

也可以看到这个StackOverflow问题

相关内容

  • 没有找到相关文章

最新更新