Package Exports
- vite-plugin-simple-html
Readme
vite-plugin-simple-html
Vite plugin for HTML processing and minification. "Lite" version of vite-plugin-html, supporting a subset of its features.
tl;dr
- Install by executing
npm install vite-plugin-simple-html
oryarn add vite-plugin-simple-html
. - Import by adding
import simpleHtmlPlugin from 'vite-plugin-simple-html'
. - Use it by adding
simpleHtmlPlugin()
toplugins
section of your Vite config.
Usage
Here's an example of basic configuration:
import { defineConfig } from 'vite';
import simpleHtmlPlugin from 'vite-plugin-simple-html';
export default defineConfig({
plugins: [
simpleHtmlPlugin({
minify: true,
inject: {
data: {
title: 'My App',
},
tags: [
{
tag: 'meta',
attrs: {
name: 'description',
content: 'My awesome App',
},
},
],
},
}),
],
});
User guide
Minification
HTML minification is done using html-minifier-terser.
To minify your HTML files, set minify
to true
:
import { defineConfig } from 'vite';
import simpleHtmlPlugin from 'vite-plugin-simple-html';
export default defineConfig({
plugins: [
simpleHtmlPlugin({
minify: true,
}),
],
});
The default configuration in this case is:
{
collapseWhitespace: true,
keepClosingSlash: true,
removeComments: true,
removeRedundantAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
useShortDoctype: true,
minifyCSS: true,
}
If you want to customize the minification process, for example to minify JS, you can pass your own configuration object:
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [
simpleHtmlPlugin({
minify: {
minifyJS: true,
},
}),
],
});
EJS syntax support
You can use EJS syntax in your HTML files.
import { defineConfig } from 'vite';
import simpleHtmlPlugin from 'vite-plugin-simple-html';
export default defineConfig({
plugins: [
simpleHtmlPlugin({
inject: {
data: {
title: 'My App',
},
},
}),
],
});
<!doctype html>
<html lang="en">
<head>
<title><%= title %></title>
</head>
<body>
<h1><%= title %></h1>
</body>
</html>
Tag injection
You can inject tags into your HTML files.
import { defineConfig } from 'vite';
import simpleHtmlPlugin from 'vite-plugin-simple-html';
export default defineConfig({
plugins: [
simpleHtmlPlugin({
inject: {
tags: [
{
tag: 'meta',
attrs: {
name: 'description',
content: 'My awesome App',
},
},
],
},
}),
],
});
import { defineConfig } from 'vite';
import simpleHtmlPlugin from 'vite-plugin-simple-html';
export default defineConfig({
plugins: [
simpleHtmlPlugin({
inject: {
data: {
title: 'My App',
},
tags: [
{
tag: 'meta',
attrs: {
name: 'description',
content: 'My awesome App',
},
},
],
},
}),
],
});
License
The MIT License.
Author
|
Wojciech Maj |