-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
30 lines (26 loc) · 787 Bytes
/
index.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
var fs = require('fs');
const fse = require('fs-extra');
const cheerio = require('cheerio');
module.exports = (html, output, prefix) => {
const result = {
styles: [],
scripts: []
};
let contents = fs.readFileSync(html, 'utf8');
let $ = cheerio.load(contents);
$('link[rel="stylesheet"]').each(function(i, elem) {
let style = $(elem).attr('href');
if (style) {
result.styles.push({ inline: false, value: prefix + style });
}
});
$('script').each(function(i, elem) {
const script = $(elem).attr('src');
if (script) {
result.scripts.push({ inline: false, value: prefix + script });
} else {
result.scripts.push({ inline: true, value: $(elem).html() });
}
});
fse.outputFileSync(output, JSON.stringify(result));
};