-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
/
vue.config.js
126 lines (123 loc) · 3.27 KB
/
vue.config.js
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
const osType = require("os").type();
const osSpec = {
Windows_NT: { iconName: "icon.ico" },
Darwin: { iconName: "icon.png" },
Linux: { iconName: "icon.png" },
}[osType];
const BundleAnalyzerPlugin = require("webpack-bundle-analyzer")
.BundleAnalyzerPlugin;
const VuetifyLoaderPlugin = require("vuetify-loader/lib/plugin");
const trayIconName = "tray@2x.png";
module.exports = {
transpileDependencies: ["vuetify"],
pluginOptions: {
electronBuilder: {
customFileProtocol: "./",
mainProcessTypeChecking: false,
chainWebpackRendererProcess: (config) => {
// config.when(process.env.NODE_ENV === "production", (config) => {
// config.plugin("analysis").use(new BundleAnalyzerPlugin());
// });
},
chainWebpackMainProcess: (config) => {
// config.when(process.env.NODE_ENV === "production", (config) => {
// config.plugin("analysis").use(new BundleAnalyzerPlugin());
// });
},
builderOptions: {
appId: "com.copytranslator.copytranslator",
publish: {
provider: "github",
owner: "copytranslator",
repo: "copytranslator",
},
asar: true,
extraResources: [
{
from: `dist_locales`,
to: `locales`,
},
{
from: `external_resource`,
to: `external_resource`,
},
{
from: trayIconName,
to: trayIconName,
},
{
from: osSpec.iconName,
to: osSpec.iconName,
},
],
win: {
icon: osSpec.iconName,
target: [
{
target: "nsis",
arch: ["x64"],
},
{
target: "zip",
arch: ["x64"],
},
],
},
linux: {
target: [
{
target: "AppImage",
arch: ["x64"],
},
{
target: "deb",
arch: ["x64"],
},
{
target: "rpm",
arch: ["x64"],
},
],
maintainer: "ziqiang_xu@qq.com",
icon: osSpec.iconName,
category: "Education",
// https://www.electron.build/configuration/linux#debian-package-options
desktop: {
Icon: "/opt/copytranslator/resources/linux-icon/icon.png",
},
},
deb: {
depends: ["libpng16-16"],
},
rpm: {
depends: ["libpng"],
},
mac: {
target: [
{
target: "default",
arch: ["x64"],
},
],
icon: osSpec.iconName,
},
nsis: {
installerIcon: osSpec.iconName,
oneClick: false,
perMachine: false,
allowToChangeInstallationDirectory: true,
license: "readable_license.txt",
},
},
externals: ["iohook", "shortcut-capture", "active-win","@nut-tree/nut-js"],
// 这一步还蛮重要的,不然就会报错
nodeModulesPath: ["./node_modules"],
},
},
configureWebpack: {
plugins: [new VuetifyLoaderPlugin()],
optimization: {
usedExports: true,
},
},
};