Minify lit-html Loader
Install
npm install minify-lit-html-loader
Usage
Within your webpack configuration object, you'll need to add the minify-lit-html-loader to the list of modules, like so:
module: rules: test: /\.js$/ exclude: // use: loader: 'minify-lit-html-loader'
Or if you are using Typescript, chain it after your Typescipt loader, like so:
module: rules: test: /\.ts?$/ exclude: /node_modules/ use: loader: 'minify-lit-html-loader' loader: 'ts-loader'
Options
Options for the esprima
parser are:
range
and loc
will always be set to true as these are required for the operation of the loader.
Options for html-minifier
can be found here
You can pass options to the loader by using the options property:
module: rules: test: /\.js?$/ exclude: // use: loader: 'minify-lit-html-loader' options: esprima: loc: true htmlMinifier: customAttrCollapse: /events/
The default options for html-minifier
are:
htmlMinifier: caseSensitive: true collapseWhitespace: true minifyCSS: true preventAttributesEscaping: true removeComments: true
Recommended Options
The arguments below for ignoring custom fragments are recommended because without them, the minifier will have a parsing error if it encounters any less-than (<
) or less-than-or-equal-to (<=
) operators in your lit-html string.
{
loader: 'minify-lit-html-loader',
options: {
htmlMinifier: {
ignoreCustomFragments: [
/<\s/,
/<=/
]
}
}
},
Improvements
There are currently no automated tests written for the loader and it has only been tested in a very limited way. It will be something I will be working on soon but I do welcome PRs from anyone willing to contribute to this project.