-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.js
More file actions
35 lines (30 loc) · 1.37 KB
/
Copy pathbuild.js
File metadata and controls
35 lines (30 loc) · 1.37 KB
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
const fs = require("fs");
const gzip = require('zlib').createGzip();
const babel = require("@babel/core");
const browserify = require('browserify');
const { P } = require("vachan");
const { argv } = require("process");
const transform = P.vachanify(babel.transformFile);
function distGen(filename) {
// Node dist
transform(`${__dirname}/src/${filename}.js`, { "presets": ["@babel/preset-env", "minify"], "comments": false })
.then(result => {
fs.writeFileSync(`${__dirname}/dist/${filename}.min.js`, result.code);
})
// Browser dist
browserify([`${__dirname}/src/${filename}.js`], { standalone: filename })
.bundle()
// .pipe(fs.c reateWriteStream(`${__dirname}/dist/${filename}.dist.js`))
.on("finish", _ => {
// `${__dirname}/dist/${filename}.dist.js`
transform(_, { "presets": ["@babel/preset-env", "minify"], "comments": false })
.then(result => {
fs.writeFileSync(`${__dirname}/dist/${filename}.dist.min.js`, result.code);
fs.createReadStream(`${__dirname}/dist/${filename}.dist.min.js`)
.pipe(gzip)
.pipe(fs.createWriteStream(`${__dirname}/dist/${filename}.dist.min.js.gz`));
});
});
}
if (!fs.existsSync(argv[2])) fs.mkdirSync(argv[2]);
argv.slice(3).forEach(distGen);