-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.js
62 lines (52 loc) · 1.34 KB
/
build.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
const jetpack = require("fs-jetpack");
const CleanCSS = require("clean-css");
const Terser = require("terser");
const cssOptions = {};
const jsOptions = {};
const files = {
// order is important
js : [
"extensions.js",
"preload.js",
"audio.js",
"cfg.js",
"files.js",
"database.js",
"render.js",
"load-chapter.js",
"parser.js",
"engine.js",
"interface.js"
],
css : [
"basic.css",
"loader.css",
"select.css",
"vn.css",
"offsets.css",
"mobile.css"
]
};
const jsPath = "src/scripting/";
const cssPath = "src/styles/";
const outputPath = "twee/compiled/";
function compileCSS () {
const css = files.css.map( fileName => {
return jetpack.read(`${cssPath}${fileName}`);
}).join("\n\n");
jetpack.write(`${outputPath}build.css`, new CleanCSS(cssOptions).minify(css).styles, { atomic : true });
}
function compileJS () {
const js = files.js.map( fileName => {
return jetpack.read(`${jsPath}${fileName}`);
}).join("\n\n");
Terser.minify(js, jsOptions).then(result => {
if (result.error) {
console.error(result.error);
}
jetpack.write(`${outputPath}build.js`, result.code, { atomic : true });
});
}
// run
compileCSS();
compileJS();