-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.config.js
135 lines (132 loc) · 4.53 KB
/
build.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
127
128
129
130
131
132
133
134
135
const packageJson = require("./package.json");
module.exports = {
bundler: "builder",
builder: {
appId: "com.bingce.adjustment",
$schema:
"https://raw.githubusercontent.com/electron-userland/electron-builder/master/packages/app-builder-lib/scheme.json",
asar: true,
productName: packageJson.productName,
afterPack: "afterPack.js",
copyright: packageJson.author.name,
// 解压文件
asarUnpack: [
"resources/dll/*.dll",
// "**/node_modules/**/*.node"
],
extraResources: [
{
from: "resources/dll/",
to: "dll/",
filter: ["**/*"],
},
],
files: [
"**/*",
"!**/.npmrc",
"!**/vendor.js.LICENSE.txt",
"!**/node_modules/*/{CHANGELOG.md,README.md,README,readme.md,readme}",
"!**/node_modules/*/{test,__tests__,tests,powered-test,example,examples}",
"!**/node_modules/*.d.ts",
"!**/node_modules/.bin",
"!**/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}",
"!.editorconfig",
"!**/._*",
"!**/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}",
"!**/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}",
"!**/{appveyor.yml,.travis.yml,circle.yml}",
"!**/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}",
"!**/node_modules/*/{.git,.npm,.DS_Store,LICENSE,license,License}",
"!node_modules/koffi/doc${/*}",
"!node_modules/koffi/vendor${/*}",
"!node_modules/koffi/src${/*}",
"!node_modules/koffi/test${/*}",
"!node_modules/koffi/examples${/*}",
"!node_modules/koffi/**/*.{md,txt,ts,map}",
"!node_modules/koffi/test${/*}",
],
mac: {
target: "dmg",
extendInfo: {
CFBundleName: packageJson.productName,
CFBundleDisplayName: packageJson.productName,
},
icon: "src-electron/icons/icon.icns",
artifactName: "${productName}-Mac-${version}-${arch}.${ext}",
},
dmg: {
icon: "src-electron/icons/icon.icns",
window: {
width: 540,
height: 380,
},
contents: [
{
x: 130,
y: 220,
},
{
x: 410,
y: 220,
type: "link",
path: "/Applications",
},
],
},
win: {
target: "nsis",
icon: "src-electron/icons/icon.ico",
artifactName:
"${productName}-Windows-${version}-${arch}-Setup.${ext}",
},
nsis: {
oneClick: false,
perMachine: false,
shortcutName: packageJson.productName,
allowToChangeInstallationDirectory: true,
deleteAppDataOnUninstall: true,
},
},
chainWebpackMain(chain) {
chain.module
.rule("node")
.test(/native_modules[/\\].+\.node$/)
.use("node-loader")
.loader("node-loader")
.end();
chain.module
.rule("node-modules")
.test(/[/\\]node_modules[/\\].+\.(m?js|node)$/)
.parser({ amd: false })
.use("asset-relocator-loader")
.loader("@vercel/webpack-asset-relocator-loader")
.options({
outputAssetBase: "native_modules",
});
chain.target("electron-main");
},
extendWebpackMain(cfg) {
cfg.externals = [...Object.keys(packageJson.dependencies || {})];
},
chainWebpackPreload(chain) {
chain.module
.rule("node")
.test(/native_modules[/\\].+\.node$/)
.use("node-loader")
.loader("node-loader")
.end();
chain.module
.rule("node-modules")
.test(/[/\\]node_modules[/\\].+\.(m?js|node)$/)
.parser({ amd: false })
.use("asset-relocator-loader")
.loader("@vercel/webpack-asset-relocator-loader")
.options({
outputAssetBase: "native_modules",
});
chain.target("electron-preload");
},
extendWebpackPreload(cfg) {
cfg.externals = [...Object.keys(packageJson.dependencies || {})];
},
};