1
0
mirror of https://github.com/S2-/minifyfromhtml.git synced 2025-08-02 20:00:05 +02:00

add some babel stuff

This commit is contained in:
s2
2018-05-05 15:35:25 +02:00
parent d17c4fe70c
commit e76e795120
604 changed files with 103725 additions and 62 deletions

View File

@@ -1,34 +1,52 @@
var argv = require('minimist')(process.argv.slice(2));
var jsdom = require("jsdom");
var {JSDOM} = jsdom;
let argv = require('minimist')(process.argv.slice(2));
let jsdom = require('jsdom');
let JSDOM = jsdom.JSDOM;
let babel = require("babel-core");
var usage = `usage:
minifyfromhtml < <input file>
let usage = `usage:
minifyfromhtml -o <output dir> < <input file>
the minification process uses babel under the hood, so you can modify
the minification with a .babelrc file.
example:
minifyfromhtml -o dist < example/index.html
`;
var inputFile = argv.i;
let inputFile = argv.i;
if (argv.h) {
console.log(usage);
}
//read stdin
var html = '';
process.stdin.resume();
process.stdin.setEncoding('utf-8');
process.stdin.on('data', function(buf) {
html += buf;
});
process.stdin.on('end', function() {
var dom = new JSDOM(html);
var getScripts = function(dom) {
var scripts = [];
let execute = function(command, callback) {
exec(command, function(error, stdout, stderr) {
callback(stdout);
});
};
var document = dom.window.document;
var scriptTags = document.getElementsByTagName('script');
var i = scriptTags.length;
while (i--) {
var src = scriptTags[i].getAttribute('src');
let readStdin = function(cb) {
let stdin = '';
process.stdin.resume();
process.stdin.setEncoding('utf-8');
process.stdin.on('data', function(buf) {
stdin += buf;
});
process.stdin.on('end', function() {
cb(stdin);
});
}
readStdin(function(html) {
let dom = new JSDOM(html);
let getTagAttrs = function(dom, tag, attr) {
let scripts = [];
let document = dom.window.document;
let scriptTags = document.getElementsByTagName(tag);
let i = scriptTags.length;
for (let i = 0; i < scriptTags.length; i++) {
let src = scriptTags[i].getAttribute(attr);
if (src) {
scripts.push(src);
}
@@ -36,5 +54,19 @@ process.stdin.on('end', function() {
return scripts;
}
console.log(getScripts(dom));
let scripts = getTagAttrs(dom, 'script', 'src');
let processedScripts = {};
for (let i = 0; i < scripts.length; i++) {
let script = scripts[i];
babel.transformFile(script, {}, function(err, result) {
if (err) {
console.error(err);
return;
}
processedScripts[script] = result.code;
});
}
console.log(getTagAttrs(dom, 'link', 'href'));
});