vite-plugin-minify
Version:
Minify html in production
47 lines (44 loc) • 1.15 kB
text/typescript
import { Plugin } from 'vite'
import { minify, MinifierOptions } from 'html-minifier-next'
/**
* @param options [html-minifier-next options](https://github.com/j9t/html-minifier-next?tab=readme-ov-file#options-quick-reference)
*
* @default
*
* {
* removeComments: true,
* collapseWhitespace: true,
* collapseBooleanAttributes: true,
* removeAttributeQuotes: false,
* removeEmptyAttributes: true,
* minifyCSS: true,
* minifyJS: true,
* minifyURLs: true,
* ...options, // user provided options
* }
*
* @returns vite-plugin-minify
*/
export function ViteMinifyPlugin(options?: MinifierOptions): Plugin {
return {
name: 'vite-plugin-minify',
apply: 'build',
transformIndexHtml: {
order: 'post',
handler(html) {
return minify(html, {
removeComments: true,
collapseWhitespace: true,
collapseBooleanAttributes: true,
removeAttributeQuotes: false,
removeEmptyAttributes: true,
minifyCSS: true,
minifyJS: true,
minifyURLs: true,
...options,
})
},
},
}
}
export default ViteMinifyPlugin