Minify - a minifier of js, css, html and img files.
To use minify as middleware try Mollify.
npm i minify -g
The bash command below prompts the user to enter a code snippet to be saved in "hello.js".
Press <enter> after the closing } and then either ^D or ^C to finish the prompt.
$ cat > hello.js
const hello = 'world';
for (let i = 0; i < hello.length; i++) {
console.log(hello[i]);
}
^DUse the command minify followed by the path to and name of the js file intended to be minified. This will minify the code and output it to the screen.
$ minify hello.js
const hello="world";for(let l=0;l<hello.length;l++)console.log(hello[l]);You can capture the output with the following:
$ minify hello.js > hello.min.jsminify can be used as a promise:
const minify = require('minify');
const options = {
html: {
removeAttributeQuotes: false,
removeOptionalTags: false
},
};
minify('./client.js', options)
.then(console.log)
.catch(console.error);Or with async-await and try-to-catch:
const minify = require('minify');
const tryToCatch = require('try-to-catch');
const options = {
html: {
removeAttributeQuotes: false,
removeOptionalTags: false
}
};
async () => {
const [error, data] = await tryToCatch(minify, './client.js', options);
if (error)
return console.error(error.message);
console.log(data);
}();The options object accepts configuration for html, css, js, and img like so:
const options = {
html: {
removeAttributeQuotes: false,
},
css: {
compatibility: '*',
},
js: {
ecma: 5,
},
img: {
maxSize: 4096,
}
}Full documentation for options that each file type accepts can be found on the pages of the libraries used by minify to process the files:
- HTML: https://github.com/kangax/html-minifier
- CSS: https://github.com/jakubpawlowicz/clean-css
- JS: https://github.com/terser/terser
- IMG: https://github.com/Filirom1/css-base64-images
Minify sets a few defaults for HTML that may differ from the base html-minifier settings:
- removeComments: true
- removeCommentsFromCDATA: true
- removeCDATASectionsFromCDATA: true
- collapseWhitespace: true
- collapseBooleanAttributes: true
- removeAttributeQuotes: true
- removeRedundantAttributes: true
- useShortDoctype: true
- removeEmptyAttributes: true
- removeEmptyElements: false
- removeOptionalTags: true
- removeScriptTypeAttributes: true
- removeStyleLinkTypeAttributes: true
- minifyJS: true
- minifyCSS: true
MIT