【发布时间】:2022-10-19 23:55:51
【问题描述】:
我正在使用 Docker 在我的 Mac 上构建一个 Electron 包(使用 Quasar)。我需要为 Windows 构建它。我尝试直接使用 quasar build 命令构建它并配置 quasar.conf.js 为 windows 构建,但显然它使用的是 wine,并且 wine 只能为 win32 构建,我需要为 Windows 64 位构建它。因此,我正在尝试 Docker,因为我已经读过它可能会起作用。
无论如何,这是我用来启动 Docker 容器的代码。这直接来自 Docker 网站:
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 文件:
{
"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 文件。但我想要 Windows (nsis) 或 Windows 安装程序。我做错了什么以至于它正在构建 Linux 而不是 Windows?
我以前从未使用过 Docker,所以这是一个很大的学习曲线。 谢谢
【问题讨论】:
标签: docker electron quasar-framework