mirror of
https://github.com/S2-/minifyfromhtml.git
synced 2025-08-02 20:00:05 +02:00
make minify work for scripts
This commit is contained in:
2
example/dist/dist.js
vendored
Normal file
2
example/dist/dist.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -1,4 +1,5 @@
|
|||||||
let argv = require('minimist')(process.argv.slice(2));
|
let argv = require('minimist')(process.argv.slice(2));
|
||||||
|
var fs = require('fs');
|
||||||
let jsdom = require('jsdom');
|
let jsdom = require('jsdom');
|
||||||
let JSDOM = jsdom.JSDOM;
|
let JSDOM = jsdom.JSDOM;
|
||||||
let babel = require("babel-core");
|
let babel = require("babel-core");
|
||||||
@@ -13,17 +14,17 @@ let usage = `usage:
|
|||||||
minifyfromhtml -o dist < example/index.html
|
minifyfromhtml -o dist < example/index.html
|
||||||
`;
|
`;
|
||||||
|
|
||||||
let inputFile = argv.i;
|
let outputDir = argv.o;
|
||||||
|
|
||||||
if (argv.h) {
|
if (argv.h) {
|
||||||
console.log(usage);
|
console.log(usage);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let execute = function(command, callback) {
|
if (!argv.o) {
|
||||||
exec(command, function(error, stdout, stderr) {
|
console.log(usage);
|
||||||
callback(stdout);
|
return;
|
||||||
});
|
}
|
||||||
};
|
|
||||||
|
|
||||||
let readStdin = function(cb) {
|
let readStdin = function(cb) {
|
||||||
let stdin = '';
|
let stdin = '';
|
||||||
@@ -54,6 +55,7 @@ readStdin(function(html) {
|
|||||||
return scripts;
|
return scripts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//process scripts
|
||||||
let scripts = getTagAttrs(dom, 'script', 'src');
|
let scripts = getTagAttrs(dom, 'script', 'src');
|
||||||
let processedScripts = {};
|
let processedScripts = {};
|
||||||
for (let i = 0; i < scripts.length; i++) {
|
for (let i = 0; i < scripts.length; i++) {
|
||||||
@@ -65,6 +67,20 @@ readStdin(function(html) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
processedScripts[script] = result.code;
|
processedScripts[script] = result.code;
|
||||||
|
|
||||||
|
if (Object.keys(processedScripts).length === scripts.length) {
|
||||||
|
//write scripts
|
||||||
|
|
||||||
|
//clear out dist file
|
||||||
|
fs.writeFileSync(outputDir + '/dist.js', '');
|
||||||
|
|
||||||
|
//write files
|
||||||
|
for (let i = 0; i < scripts.length; i++) {
|
||||||
|
const script = scripts[i];
|
||||||
|
|
||||||
|
fs.appendFileSync(outputDir + '/dist.js', processedScripts[script] + '\n');
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user