-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
vue.config.js
81 lines (77 loc) · 1.99 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
// @ts-check
const { TsconfigPathsPlugin } = require('tsconfig-paths-webpack-plugin');
/** @typedef {import('@vue/cli-service').ProjectOptions} ProjectOptions */
/** @typedef {import('vue-cli-plugin-electron-builder').PluginOptions} VuePluginOptions */
/** @type {VuePluginOptions} */
const vuePluginOptions = {
// @ts-ignore
nodeIntegration: true,
mainProcessFile: 'src/electron/main.ts',
chainWebpackMainProcess(config) {
config.resolve.alias.delete('@');
config.resolve.plugin('tsconfig-paths').use(TsconfigPathsPlugin);
},
chainWebpackRendererProcess(config) {
config.module
.rule('vue')
.use('vue-loader')
.tap(options => {
options.whitespace = 'condense';
return options;
});
},
mainProcessWatch: ['src/electron/**/*'],
removeElectronJunk: true,
builderOptions: {
appId: 'com.shayded.tuneup-prime',
productName: 'tuneup PRIME',
afterSign: 'electron-builder-notarize',
directories: {
buildResources: 'build-resources',
},
win: {
target: 'nsis',
icon: 'build-resources/icon.png',
},
mac: {
target: 'dmg',
icon: 'build-resources/icon.icns',
category: 'public.app-category.utilities',
entitlements: 'build-resources/entitlements.mac.plist',
entitlementsInherit: 'build-resources/entitlements.mac.plist',
},
dmg: {
background: 'build-resources/dmg-background.tiff',
icon: 'build-resources/icon.icns',
title: '${productName}',
},
publish: {
provider: 'github',
owner: 'rshea0',
repo: 'tuneup-prime',
vPrefixedTagName: true,
},
},
};
/** @type {ProjectOptions} */
module.exports = {
css: {
loaderOptions: {
sass: {
additionalData: `
@import '@/app/scss/_prepend';
`,
},
},
},
pages: {
index: {
entry: 'src/app/renderer.ts',
title: 'tuneup PRIME',
},
},
pluginOptions: {
electronBuilder: vuePluginOptions,
},
productionSourceMap: false,
};