Electron Builder Linux更新-未定义APPIMAGE env
我在Electron+Create React应用程序堆栈上。 我正在使用Electron Updater进行自动更新 平台:Linux,格式:AppImage 当我的应用程序检查更新时,出现以下错误: 未定义APPIMAGE envElectron Builder Linux更新-未定义APPIMAGE env,electron,create-react-app,electron-builder,Electron,Create React App,Electron Builder,我在Electron+Create React应用程序堆栈上。 我正在使用Electron Updater进行自动更新 平台:Linux,格式:AppImage 当我的应用程序检查更新时,出现以下错误: 未定义APPIMAGE env 有人经历过同样的问题吗?需要建议。尝试使用electron builder构建应用程序,因为此模块处于仅维护模式。 linux的自动更新是不可能的,您只能在mac和windows上进行。请阅读此内容。尝试使用electron builder构建您的应用程序,因为此
有人经历过同样的问题吗?需要建议。尝试使用electron builder构建应用程序,因为此模块处于仅维护模式。
linux的自动更新是不可能的,您只能在mac和windows上进行。请阅读此内容。尝试使用electron builder构建您的应用程序,因为此模块处于仅维护模式。
linux的自动更新是不可能的,你只能在mac和windows上这样做。请阅读此文。请不要再使用electron updater,因为它的GitHub页面不再支持它。请不要再使用electron updater,因为它的GitHub页面不再支持它。大多数情况下,当您试图在开发模式或非打包AppImage模式下使用自动更新程序时,会发生这种情况。它只适用于打包的生产构建 然而,对我来说,这也发生在打包的AppImage中,结果证明是使用网页包造成的,如下所示:
plugins: [
new webpack.DefinePlugin({
"process.env": {
NODE_ENV: JSON.stringify("production")
},
...
process.env.APPIMAGE = path.join(__dirname, 'dist', `MyApp-${app.getVersion()}.AppImage`)
删除process.env定义允许在分布式包中再次定义APPIMAGE。似乎其余的定义可以安全地保留在原位,而不会破坏自动更新程序
如果您的用例无法删除此定义,则可以在主线程(而不是渲染器线程)文件的开头覆盖它,如下所示:
plugins: [
new webpack.DefinePlugin({
"process.env": {
NODE_ENV: JSON.stringify("production")
},
...
process.env.APPIMAGE = path.join(__dirname, 'dist', `MyApp-${app.getVersion()}.AppImage`)
。。。显然,在Path.join的第三个参数中使用了正确的文件名
这种覆盖方法似乎对我没有任何帮助,所以我自己只是简单地从DefinePlugin定义中删除process.env,但在其他情况下可能会有所帮助。最常见的情况是,当您试图在开发模式或非打包AppImage模式下使用自动更新程序时。它只适用于打包的生产构建 然而,对我来说,这也发生在打包的AppImage中,结果证明是使用网页包造成的,如下所示:
plugins: [
new webpack.DefinePlugin({
"process.env": {
NODE_ENV: JSON.stringify("production")
},
...
process.env.APPIMAGE = path.join(__dirname, 'dist', `MyApp-${app.getVersion()}.AppImage`)
删除process.env定义允许在分布式包中再次定义APPIMAGE。似乎其余的定义可以安全地保留在原位,而不会破坏自动更新程序
如果您的用例无法删除此定义,则可以在主线程(而不是渲染器线程)文件的开头覆盖它,如下所示:
plugins: [
new webpack.DefinePlugin({
"process.env": {
NODE_ENV: JSON.stringify("production")
},
...
process.env.APPIMAGE = path.join(__dirname, 'dist', `MyApp-${app.getVersion()}.AppImage`)
。。。显然,在Path.join的第三个参数中使用了正确的文件名
不过,这种覆盖方法似乎对我没有任何帮助,所以我自己只是从DefinePlugin定义中删除了process.env,但在其他情况下可能会有所帮助。是否还有其他库用于自动更新Linux平台的electron应用程序?它仍然受支持,只是现在它是electron builder的一部分,正如您引用的github页面上所述:是否有其他库用于自动更新Linux平台的electron应用程序?它仍然受支持,只是现在它是electron builder的一部分,正如您引用的github页面上所述:正如预期的那样,因为从您的代码段中,您正在覆盖值。请参阅说明如下的文档:定义流程值时警告首选“process.env.NODE_env”:JSON.stringify'production”而不是流程:{env:{NODE_env:JSON.stringify'production'}。使用后者将覆盖流程对象,这可能会破坏与某些模块的兼容性,这些模块希望定义流程对象上的其他值。正如预期的那样,因为您正在从代码段覆盖值。请参阅说明如下的文档:定义流程值时警告首选“process.env.NODE_env”:JSON.stringify'production”而不是流程:{env:{NODE_env:JSON.stringify'production'}。使用后者将覆盖流程对象,这可能会破坏与某些模块的兼容性,这些模块希望定义流程对象上的其他值。