-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.js
46 lines (40 loc) · 1.19 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
const { readFile, writeFile } = require('fs').promises
const { minify } = require('terser')
const postcss = require('postcss')
const plugins = [
require('cssnano')({
preset: 'default',
})
]
const files = {
js: [
'mod_bcsinfo/media/js/mod_bcsinfo.js',
'mod_servers/media/js/mod_servers.js',
'mod_standings/media/js/mod_standings.js',
'mod_tracks/media/js/mod_tracks.js',
],
css: [
'mod_bcsinfo/media/css/mod_bcsinfo.css',
'mod_standings/media/css/mod_standings.css',
'mod_tracks/media/css/mod_tracks.css',
],
}
files.js.forEach(async(file) => {
const data = await readFile(file, { encoding: 'utf8' })
const minified = await minify(data, { output: { comments: false } } )
try {
writeFile(`${file.substr(0, file.lastIndexOf('.'))}.min.js`, minified.code, { flag: 'w'})
} catch(error) {
console.log(error)
}
})
files.css.forEach(async(file) => {
const data = await readFile(file, { encoding: 'utf8' })
const dest = `${file.substr(0, file.lastIndexOf('.'))}.min.css`
const minified = await postcss(plugins).process(data, { from: file, to: dest })
try {
writeFile(dest, minified.css, { flag: 'w'})
} catch(error) {
console.log(error)
}
})