首页 > 解决方案 > Electron React App 在开发中运行良好,但在打包后就不行了

问题描述

我已经使用 React 构建了一个 Electron 应用程序。我正在使用 Electron-prebuilt-compile 以使其与 React 一起正常工作。当我正在开发并使用 npm start 运行它时,一切都很完美。我完成了版本 1,需要将其打包以安装在其他计算机上。我正在使用 Electron-builder 来做到这一点。我能够顺利运行,没有错误。然后我运行它生成的 .exe 并最终得到一个 Unexpected Token 错误(它指向一个导入)。就好像一旦我把它打包,它就不能再告诉什么是导入/导出,我认为这就是电子预编译编译器的用途。有什么我可能会丢失的吗?我遵循了几个不同的指南,也尝试了不同的打包脚本并得到了相同的结果。

这是我的项目仓库: 单击此处查看 GitHub 仓库

如果您想对其进行测试,则需要创建一个测试 firebase 数据库。然后创建一个与下面完全相同的 .env 文件,但带有您的 firebase 信息。或者直接将您的信息放入 app.jsx 文件中。

FIREBASE_APIKEY = 
FIREBASE_AUTHDOMAIN = 
FIREBASE_DATABASEURL = 
FIREBASE_PROJECTID = 
FIREBASE_STORAGEBUCKET = 
FIREBASE_MESSAGINGSENDERID = 

标签: reactjselectronelectron-builder

解决方案


在类似情况下对我有用的是electron从依赖项中删除,这听起来很奇怪。你实际上并不需要它,因为它electron-prebuilt-compile提供了它自己的电子版本(可作为 访问electron),它适用于 React 和 ES6。那是您要使用的电子,而不是常规的电子electron,它不适用于开箱即用的那些东西。

在此处查看电子预建编译文档https://www.npmjs.com/package/electron-prebuilt-compile,其中显示“现在您可以运行electron以运行电子:”

这是我工作项目中所有各种“电子”依赖项(也许有些是重复的):

"electron-forge": "^5.2.2",
"electron-prebuilt-compile": "2.0.0"
"electron-compile": "^6.4.2",
"electron-rebuild": "^1.7.3",
"electron-squirrel-startup": "^1.0.0",
"electron-window-state": "^4.1.1",

推荐阅读