2

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

背景资料

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

什么有效?

  • 如果我在本地启动应用程序,我会运行 npm 构建脚本并启动电子 -> 应用程序运行良好!
  • 如果我在本地(在我的 Mac 上)为 Windows 打包应用程序并将 .exe 复制到我的虚拟机:-> 应用程序运行良好!

什么不起作用?

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

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

我在本地机器上完全删除了我的节点模块并重新安装了它们,它仍然可以正常工作。

你有什么主意吗?我的本地环境和可能导致此类问题的运行器环境之间的差异在哪里?

我非常陷入这个问题,如果你能帮助我解决这个问题,你将成为我的英雄!

祝你今天过得愉快!

4

1 回答 1

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-b​​uild#provided-docker-images

于 2020-04-25T17:09:55.800 回答