-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.js
More file actions
71 lines (66 loc) · 1.57 KB
/
build.js
File metadata and controls
71 lines (66 loc) · 1.57 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
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
const { inlineSource } = require('inline-source');
const fs = require('fs');
const path = require('path');
const htmlpath = path.resolve('./src/index.html');
const savepath = path.resolve('./dist')
const chokidar = require('chokidar');
const open = require('open');
let html;
async function build(callback) {
try {
// Inlining Resources
if (process.env.mode === "production") {
html = await inlineSource(htmlpath, {
compress: true,
rootpath: path.resolve('./src'),
});
} else {
html = await inlineSource(htmlpath, {
compress: false,
pretty: true,
rootpath: path.resolve('./src'),
});
}
// Saving HTML
fs.writeFile(path.join(savepath, 'index.html'), html, function (err) {
if (err) {
throw err;
}
callback();
});
} catch (err) {
throw err;
}
}
function watch() {
console.log("Building...");
build(function() {
console.log("Done");
console.log("Opening...");
openpath = path.join(savepath, 'index.html');
console.log(openpath);
open(openpath);
console.log("Watching...")
// Watch for changes in src dir
chokidar.watch('src', {
ignored: /(^|[\/\\])\../
}).on('change', (path) => {
console.log("\nChange detected in file " + path);
console.log("Rebuilding...");
build(function() {
console.log("Done");
})
});
});
}
module.exports = {
build: function() {
console.log("Building...");
build(function() {
console.log("Done");
});
},
watch: function() {
watch();
}
}