我在Electron + Create React App堆栈上。 我正在使用电子更新程序(https://github.com/develar/electron-updater)进行自动更新。
平台:Linux,格式:AppImage。
我的应用检查更新时,出现以下错误:
未定义APPIMAGE环境。
有人遇到过同样的问题吗?需要建议。
答案 0 :(得分:0)
尝试使用电子构建器来构建您的应用程序,因为此模块处于仅维护模式。 linux的autoUpdate是不可能的,您只能在Mac和Windows上才能做到这一点,请尝试阅读此documentation。
答案 1 :(得分:0)
请不要再使用电子更新程序,因为根据其GitHub页面不再受支持。
答案 2 :(得分:0)
通常,当您尝试在开发模式(或非打包的AppImage模式)中使用自动更新程序时,会发生这种情况。它仅适用于打包生产版本。
但是,对我来说,这也发生在打包的AppImage中,结果是由使用webpack DefinePlugin引起的,如下所示:
plugins: [
new webpack.DefinePlugin({
"process.env": {
NODE_ENV: JSON.stringify("production")
},
...
删除process.env
定义允许在分布式程序包中再次定义APPIMAGE
。看来其余的定义可以安全地保留在适当的位置,而无需破坏自动更新程序。
如果您的用例无法删除此定义,则according to some users可以像这样在您的主线程(而非渲染器线程)文件的开头简单地覆盖它:
process.env.APPIMAGE = path.join(__dirname, 'dist', `MyApp-${app.getVersion()}.AppImage`)
...显然在Path.join的第3个参数中具有正确的文件名。
尽管这种替代方法似乎对我没有任何帮助,所以我自己只是从process.env
定义中删除了DefinePlugin
,但这在其他情况下可能会有所帮助。