Electron-Builder Linux更新-未定义APPIMAGE环境

时间:2018-09-21 11:21:32

标签: electron create-react-app electron-builder

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

平台:Linux,格式:AppImage。

我的应用检查更新时,出现以下错误:

未定义APPIMAGE环境。

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

3 个答案:

答案 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,但这在其他情况下可能会有所帮助。