netlify-plugin-minify-html
Version:
A plugin to add HTML minification as a post-processing optimisation in Netlify
39 lines (28 loc) • 993 B
JavaScript
const comp = require('@node-minify/core');
const htmlMinifier = require('@node-minify/html-minifier');
module.exports = {
onPostBuild: async ({ inputs, constants, utils }) => {
// Only continue in the selected deploy contexts
if( !inputs.contexts.includes(process.env.CONTEXT) ) {
console.log('Not minifiying HTML in the context:', process.env.CONTEXT);
return;
}
// Minify HTML
console.log('Minifiying HTML in the deploy context:', process.env.CONTEXT);
console.log('Minifiying HTML with these options:', inputs.minifierOptions || "Default");
try {
await comp({
compressor: htmlMinifier,
input: constants.PUBLISH_DIR + '/**/*.html',
output: '$1.html',
replaceInPlace: true,
options: {
collapseWhitespace: false,
...inputs.minifierOptions
}
});
} catch (error) {
utils.build.failPlugin('The Minify HTML plugin failed.', { error })
}
}
}