Electron-Builder Linux 更新 - 未定义 APPIMAGE env



我在 Electron + Create React App 堆栈上。 我正在使用电子更新程序(https://github.com/develar/electron-updater(进行自动更新。

平台: Linux, 格式: AppImage.

当我的应用检查更新时,我收到以下错误:

未定义 APPIMAGE 环境。

有人遇到过同样的问题吗?需要建议。

请不要再使用electron-updater,因为根据其GitHub页面,它不再受支持。

大多数情况下,当您尝试在开发模式(或非打包的 AppImage 模式(中使用自动更新程序时,会发生这种情况。它仅适用于打包的生产版本。


然而,对我来说,这也发生在打包的AppImage中,结果证明是使用webpack DefinePlugin引起的,如下所示:

plugins: [
new webpack.DefinePlugin({
"process.env": {
NODE_ENV: JSON.stringify("production")
},
...

删除process.env定义允许在分发包中再次定义APPIMAGE。似乎其余的定义可以安全地保留在原位,而不会破坏自动更新程序。

如果您的用例无法删除此定义,根据一些用户的说法,可以简单地在主线程(而不是渲染器线程(文件的开头覆盖它,如下所示:

process.env.APPIMAGE = path.join(__dirname, 'dist', `MyApp-${app.getVersion()}.AppImage`)

。显然在 Path.join 的第三个参数中使用了正确的文件名。

不过,这种覆盖方法似乎对我没有任何作用,所以我自己只是简单地从DefinePlugin定义中删除process.env,但它在其他情况下可能会有所帮助。

尝试使用电子生成器来构建您的应用程序,因为此模块处于仅维护模式。 Linux 的自动更新是不可能的,您只能对 Mac 和 Windows 执行此操作 尝试阅读本文档。

最新更新