@lucsoft/minify-lit-html-loader

0.0.4 • Public • Published

Minify lit-html Loader

Install

npm install minify-lit-html-loader

Usage

Documentation: Using loaders

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: /(node_modules|bower_components)/,
      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:

interface Config {
  range: boolean;
  loc: boolean;
  source: string | null;
  tokens: boolean;
  comment: boolean;
  tolerant: boolean;
  sourceType: 'module' | 'script';
}

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: /(node_modules|bower_components)/,
      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.

Package Sidebar

Install

npm i @lucsoft/minify-lit-html-loader

Weekly Downloads

3

Version

0.0.4

License

MIT

Unpacked Size

37.9 kB

Total Files

11

Last publish

Collaborators

  • lucsoft