在gitlabRunner上使用asar构建的React Electron App会产生JavaScript错误

时间:2018-07-05 07:34:33

标签: reactjs docker gitlab electron asar

我将开始我的问题,有点结构化:

背景信息

  • 我正在Mac上用Electron开发一个React App。
  • 客户在Windows 7和10上使用此应用程序。
  • 该应用程序在docker中的gitlab运行器上与asar打包在一起
  • 跑步者的dockerfile来自electronuserland/builder:base

什么有效?

  • 如果我在本地启动该应用程序,则运行npm build脚本并启动electronic->该应用程序运行正常!
  • 如果我在Windows本地(在Mac上)打包该应用程序,然后将.exe复制到我的VM:->该应用程序运行良好!

什么不起作用?

如果我的提交触发了我的管道,则gitlab运行程序开始运行buildscript和package脚本(与我在本地运行以打包和运行我的应用程序的脚本相同),构建“成功”完成,并且工件存储在gitlab。

然后,从Windows VM上的gitlab工件下载.exe并安装该软件。这绝对正常。该应用程序可以启动,并且某些功能运行良好。 但是程序包存在问题(或者可能还有更多问题,我还不知道)是react-bootstrap-daterangepicker。它给我一个$this.$picker.daterangepicker is not a function的JS错误 我在Google上搜索了很多东西,发现该程序包存在问题,但是我不明白为什么我在本地而不是与运行程序一起打包该应用程序时会起作用。

我已在本地计算机上完全删除了节点模块,然后重新安装它们,但仍可以正常工作。

你有什么主意吗? 我的本地环境和跑步环境之间可能导致这种问题的差异在哪里?

我非常困在这个问题上,如果您能帮助我解决这个问题,您将是我的英雄!

祝你有美好的一天!

1 个答案:

答案 0 :(得分:0)

electron-builder建议使用electronuserland/builder:wine来构建Windows目标。我不确定这是否可以解决问题,但是您可以尝试使用此图像吗?

electronuserland/builder:wine — Wine, NodeJS 10 and required system dependencies. Based on builder:10. Use this image if you need to build Windows targets.

有关更多信息:https://www.electron.build/multi-platform-build#provided-docker-images