使用AppVeyor和Travis自动编译Electron全平台应用

package.json配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
{
"name": "HexoClient",
"version": "1.2.2",
"author": "......",
"description": "Hexo 桌面客户端",
"license": "Apache License, Version 2.0",
"homepage": "https://github.com/gaoyoubo/hexo-client",
"repository": {
"type": "git",
"url": "https://github.com/gaoyoubo/hexo-client.git"
},
"main": "./dist/electron/main.js",
"scripts": {
"build": "node .electron-vue/build.js && electron-builder --publish onTagOrDraft"
......
},
"build": {
"appId": "org.mspring.hexo.client",
"productName": "HexoClient",
"directories": {
"output": "build"
},
"files": [
"dist/electron/**/*",
"build/icons/*"
],
"publish": {
"provider": "github",
"owner": "gaoyoubo",
"repo": "hexo-client"
},
"dmg": {
"contents": [
{
"x": 410,
"y": 150,
"type": "link",
"path": "/Applications"
},
{
"x": 130,
"y": 150,
"type": "file"
}
]
},
"mac": {
"icon": "build/icons/icon.icns"
},
"win": {
"target": "nsis",
"icon": "build/icons/icon.ico"
},
"linux": {
"category": "Utility",
"target": [
{
"target": "AppImage",
"arch": [
"x64",
"ia32"
]
},
{
"target": "deb",
"arch": [
"x64",
"ia32"
]
},
{
"target": "rpm",
"arch": [
"x64",
"ia32"
]
}
],
"icon": "build/icons"
}
},
......
}

build配置

electron-builder支持构建多个平台安装包,上面的配置中我配置了Windows、macos、linux,可以直接拷贝使用,如果想了解更多可以看这篇官方出品的文档:https://www.electron.build/configuration/configuration

构建命令配置

1
node .electron-vue/build.js && electron-builder --publish onTagOrDraft

可以看到后面的参数--publish onTagOrDraft他的意思是,当在标签中提交,或github中存在draft发布版本的时候触发publish操作,这个时候会自动将构建好的包上传到github releases中。publish配置的取值如下:

ValueDescription
onTagon tag push only
onTagOrDrafton tag push or if draft release exists
alwaysalways publish
nevernever publish

参考: