You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab Pipelines构建Electron跨平台桌面应用报错求助

GitLab Pipelines构建Electron跨平台应用报错排查与解决

问题背景

通过GitLab Pipelines构建支持Linux、macOS、Windows的Electron桌面应用,Linux构建正常,但Windows、macOS构建失败。当前Pipeline配置如下:

image: node:14

stages:
  - build

variables:
  ELECTRON_CACHE: "$CI_PROJECT_DIR/.cache/electron"
  ELECTRON_BUILDER_CACHE: "$CI_PROJECT_DIR/.cache/electron-builder"

before_script:
  - npm install -g electron-builder
  - apt-get update
  - apt-get install -y wine
build_macos:
  stage: build
  script:
    - npm install
    - npm run build:mac
    - electron-builder --mac --x64
  artifacts:
    paths:
      - dist/*.dmg
      - dist/*.zip
  only:
    - main

build_windows:
  stage: build
  tags:
    - windows
  script:
    - npm install
    - apt-get install wine
    - npm run build:win
    - electron-builder --win --x64
  artifacts:
    paths:
      - dist/*.exe
      - dist/*.zip
  only:
    - main

build_linux:
  stage: build
  script:
    - npm install
    - npm run build:linux
    - electron-builder --linux --x64
  artifacts:
    paths:
      - dist/*.AppImage
      - dist/*.deb
      - dist/*.rpm
  only:
    - main

Windows构建报错解决

报错核心信息

⨯ wine is required, please see ...
⨯ /builds/repo/jg-desktop-app/node_modules/app-builder-bin/linux/x64/app-builder process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE

问题原因

  1. Windows Runner环境基于Windows系统,apt-get是Linux专属包管理命令,无法在Windows执行
  2. Windows本地构建Windows应用不需要Wine,Wine仅用于Linux环境跨平台构建Windows应用

修复方案

修改build_windows任务配置,适配Windows Runner环境:

build_windows:
  stage: build
  tags:
    - windows
  before_script:
    - npm install
  script:
    - npm run build:win
    - npx electron-builder --win --x64
  artifacts:
    paths:
      - dist/*.exe
      - dist/*.zip
  only:
    - main

关键调整点:

  • 移除Windows任务中的apt-get install wine无效命令
  • 改用npx electron-builder调用项目本地依赖,避免全局安装的兼容性问题
  • 适配Windows Runner默认的PowerShell环境,命令符合Windows语法

macOS构建报错解决

报错核心信息

⨯ Cannot find module 'dmg-license'
Require stack:
- /builds/repo/jg-desktop-app/node_modules/dmg-builder/out/dmgLicense.js
...

问题原因

  1. 当前build_macos任务使用Linux镜像(node:14)跨平台构建macOS应用,缺失macOS构建专属依赖
  2. 全局安装electron-builder导致依赖链不完整,dmg-license模块未正确安装
  3. Linux环境构建macOS应用兼容性差,依赖配置复杂

修复方案

方案1:使用GitLab macOS Runner(推荐)

改用macOS专属Runner构建,彻底规避跨平台依赖问题:

build_macos:
  stage: build
  tags:
    - macos
  before_script:
    - brew install node@14 # 按需安装对应Node版本
    - npm install
  script:
    - npm run build:mac
    - npx electron-builder --mac --x64
  artifacts:
    paths:
      - dist/*.dmg
      - dist/*.zip
  only:
    - main

方案2:修复Linux跨平台构建依赖问题

若必须使用Linux镜像构建,补充缺失依赖并调整安装逻辑:

build_macos:
  stage: build
  script:
    - npm install
    - npm install dmg-license --save-dev # 手动安装缺失模块
    - npm run build:mac
    - npx electron-builder --mac --x64
  artifacts:
    paths:
      - dist/*.dmg
      - dist/*.zip
  only:
    - main

关键调整点:

  • 优先使用macOS Runner,简化依赖配置
  • 移除全局安装electron-builder,改用项目本地依赖调用
  • 若坚持Linux构建,手动补全缺失的dmg-license模块

内容的提问来源于stack exchange,提问作者stacki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 08:54:49