Docker环境electron-builder构建Electron仅输出Linux包无Windows安装包问题
问题背景
在Mac设备上使用Docker配合Quasar框架构建Electron安装包,目标产物为64位Windows版本安装包。此前直接执行quasar build命令、在quasar.conf.js中配置Windows构建目标的方案依赖wine,仅能生成win32架构产物,无法满足64位Windows包的构建需求,因此改用Docker方案构建。
操作步骤
- 参考Docker官方文档提供的启动命令运行
electronuserland/builder:wine镜像,命令如下:
docker run --rm -ti \ --env-file <(env | grep -iE 'DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS_TAG|TRAVIS|TRAVIS_REPO_|TRAVIS_BUILD_|TRAVIS_BRANCH|TRAVIS_PULL_REQUEST_|APPVEYOR_|CSC_|GH_|GITHUB_|BT_|AWS_|STRIP|BUILD_') \ --env ELECTRON_CACHE="/root/.cache/electron" \ --env ELECTRON_BUILDER_CACHE="/root/.cache/electron-builder" \ -v ${PWD}:/project \ -v ${PWD##*/}-node-modules:/project/node_modules \ -v ~/.cache/electron:/root/.cache/electron \ -v ~/.cache/electron-builder:/root/.cache/electron-builder \ electronuserland/builder:wine
- 容器启动后执行
yarn && yarn dist命令触发构建 - 项目
package.json已在build字段配置win平台nsis打包目标,完整配置如下:
{ "name": "pawtap3", "version": "0.0.1", "description": "Paw Tap Description", "main": "./src/router/index.js", "productName": "Paw Tap 3", "author": "C. Heyman", "private": true, "scripts": { "lint": "eslint --ext .js,.vue ./", "format": "prettier --write \"**/*.{js,vue,scss,html,md,json}\" --ignore-path .gitignore", "test": "echo \"No test specified\" && exit 0", "dist": "electron-builder" }, "build": { "appId": "com.electron.pawtap", "win": { "target": "nsis" } }, "dependencies": { "@quasar/extras": "^1.0.0", "child_process": "^1.0.2", "core-js": "^3.6.5", "crypto": "^1.0.1", "date-fns": "^2.28.0", "dexie": "^3.2.2", "dexie-export-import": "^1.0.3", "downloadjs": "^1.4.7", "fs": "^0.0.1-security", "jspdf": "^2.5.1", "jspdf-autotable": "^3.5.25", "net": "^1.0.2", "nodemailer": "^6.7.7", "o": "^2.3.2", "path": "^0.12.7", "quasar": "^2.0.0", "stream": "^0.0.2", "url": "^0.11.0", "util": "^0.12.4", "vue": "^3.0.0", "vue-router": "^4.0.0" }, "devDependencies": { "@babel/eslint-parser": "^7.13.14", "@quasar/app": "^3.0.0", "electron": "^19.0.7", "electron-packager": "^15.2.0", "electron": "^16.0.7", "electron-builder": "^22.14.13", "eslint": "^7.14.0", "eslint-config-prettier": "^8.1.0", "eslint-plugin-vue": "^7.0.0", "eslint-webpack-plugin": "^2.4.0", "prettier": "^2.5.1" }, "browserslist": [ "last 10 Chrome versions", "last 10 Firefox versions", "last 4 Edge versions", "last 7 Safari versions", "last 8 Android versions", "last 8 ChromeAndroid versions", "last 8 FirefoxAndroid versions", "last 10 iOS versions", "last 5 Opera versions" ], "engines": { "node": ">= 12.22.1", "npm": ">= 6.13.4", "yarn": ">= 1.21.1" } }
问题现象
实际构建过程中始终输出.snap、.AppImage格式的Linux平台安装包,未生成预期的nsis格式Windows安装包。作为Docker初学者,不清楚哪项配置有误导致构建平台与预期不符,需要可行的解决方案。
构建过程截图


内容的提问来源于stack exchange,提问作者Cynthia
相关产品推荐
相关产品推荐

