|
@@ -3,7 +3,7 @@ var debug = require('debug')('ylt:fileMinifier');
|
|
|
var Q = require('q');
|
|
|
var UglifyJS = require('uglify-js');
|
|
|
var CleanCSS = require('clean-css');
|
|
|
-var Minimize = require('minimize');
|
|
|
+var htmlMinifier = require('html-minifier');
|
|
|
|
|
|
|
|
|
var FileMinifier = function() {
|
|
@@ -175,19 +175,25 @@ var FileMinifier = function() {
|
|
|
function minifyHtml(body) {
|
|
|
var deferred = Q.defer();
|
|
|
|
|
|
- var minimize = new Minimize({
|
|
|
- empty: true, // KEEP empty attributes
|
|
|
- conditionals: true, // KEEP conditional internet explorer comments
|
|
|
- spare: true // KEEP redundant attributes
|
|
|
- });
|
|
|
-
|
|
|
- minimize.parse(body, function (error, data) {
|
|
|
- if (error) {
|
|
|
- deferred.reject(error);
|
|
|
- } else {
|
|
|
- deferred.resolve(data);
|
|
|
- }
|
|
|
- });
|
|
|
+ try {
|
|
|
+ var result = htmlMinifier.minify(body, {
|
|
|
+ collapseWhitespace: true,
|
|
|
+ conservativeCollapse: true,
|
|
|
+ continueOnParseError: true,
|
|
|
+ decodeEntities: true,
|
|
|
+ minifyCSS: true,
|
|
|
+ minifyJS: true,
|
|
|
+ preserveLineBreaks: true,
|
|
|
+ removeAttributeQuotes: true,
|
|
|
+ removeComments: true,
|
|
|
+ removeScriptTypeAttributes: true,
|
|
|
+ removeStyleLinkTypeAttributes: true
|
|
|
+ });
|
|
|
+ deferred.resolve(result);
|
|
|
+ } catch(err) {
|
|
|
+ deferred.reject(err);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
return deferred.promise;
|
|
|
}
|