-
Notifications
You must be signed in to change notification settings - Fork 2
/
vite.config.ts
41 lines (36 loc) · 916 Bytes
/
vite.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { defineConfig } from 'vite';
import { minify } from 'html-minifier';
export default defineConfig({
plugins: [htmlMinify()],
});
const htmlComponentFile = /\.component\.html\?inline$/;
const minifyHTMLConfig = {
collapseInlineTagWhitespace: true,
collapseWhitespace: true,
minifyCSS: true,
minifyJS: true,
removeAttributeQuotes: true,
removeComments: true,
removeEmptyAttributes: true,
removeOptionalTags: true,
removeRedundantAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
sortAttributes: true,
sortClassName: true,
};
function htmlMinify() {
return {
name: 'html-minify',
transform(src: string, id: string) {
if (htmlComponentFile.test(id)) {
return {
code: `export default \`${minify(src, minifyHTMLConfig)}\``,
map: null,
};
} else {
return;
}
},
};
}