-
Notifications
You must be signed in to change notification settings - Fork 30
/
build-nwjs.js
64 lines (59 loc) · 1.72 KB
/
build-nwjs.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
#!/usr/bin/env node
const fs = require('fs');
const zip = require('bestzip');
const path = require('node:path');
fs.rmSync('./build', {recursive: true, force: true});
fs.rmSync('dist/packages', {recursive: true, force: true});
const NwBuilder = require('nw-builder');
const {log} = require("util");
const nw = new NwBuilder({
buildDir: "dist/packages",
cacheDir: "build",
forceDownload: true,
files: [
"./dist/webpack/**/*",
"package.json"
],
flavor: "normal",
version: "latest",
// For debugging under Windows, remove osx64
platforms: ["osx64", "win32", "win64", "linux32", "linux64"],
appName: null,
appVersion: null,
buildType: function () {
return this.appName + "-" + this.appVersion
},
useRcedit: true,
zip: false,
macIcns: './app/assets/icon.icns',
winIco: './app/assets/icon.ico',
winVersionString: {
'CompanyName': 'MaibornWolff GmbH',
'FileDescription': 'CodeCharta Visualization',
'ProductName': 'codecharta-visualization',
'LegalCopyright': 'Copyright MaibornWolff GmbH'
}
});
(async () => {
await nw.build();
console.log("nw-build done!");
fs.mkdirSync(nw.options.buildDir, {recursive: true});
const baseZipPath = path.resolve(nw.options.buildDir, nw.options.appName + "-" + nw.options.appVersion + "-");
const zipPromises = []
nw._forEachPlatform((name, platform) => {
zipPromises.push(
zip({
source: name,
destination: baseZipPath + name + ".zip",
cwd: path.join(platform.releasePath, "..")
})
)
});
zipPromises.push(zip({
source: "webpack",
destination: baseZipPath + "web.zip",
cwd: path.join(nw.options.buildDir, "..")
}));
await Promise.all(zipPromises);
console.log('Everything zipped')
})();