【问题标题】:Electron React App works fine in development but not after it's been packagedElectron React App 在开发中运行良好,但在打包后就不行了
【发布时间】:2018-12-05 21:05:08
【问题描述】:

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

这是我的项目回购: Click here for GitHub Repo

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

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

【问题讨论】:

标签: reactjs electron electron-builder


【解决方案1】:

在类似情况下对我有用的是从依赖项中删除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",

【讨论】:

  • 啊,我没注意到,谢谢。今天有机会我会试试看的。
  • 所以我删除了它,甚至确保在电子上运行 npm uninstall 并且在我构建它之后它仍然无法工作。当我运行 npm start 时仍然有效,但是一旦我构建它并尝试安装和运行构建的程序,它就会抛出意外的令牌错误。
  • 我尝试了一些其他的东西,他们似乎得到了工作,但后来又出现了一些问题。所以首先我在 package.json 中的构建对象中添加了一个名为“electronVersion”的属性:“electron-prebuilt-compile”。我这样做是因为我发现如果 electron-builder 在 devDependencies 中,它默认不会使用它。据我所知,这已解决了该问题,但现在我从我的 firbase 节点模块中收到了 node-pre-gyp 错误。说无法读取 null 的“主要”属性。
猜你喜欢
  • 2020-09-25
  • 2021-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多