Rollup plugin to minify HTML template literal strings
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
test
.editorconfig
.gitignore
.npmignore fix: remove source files from package Feb 13, 2019
.prettierrc.json feat: initial release Jul 23, 2018
.travis.yml chore: add travis and coveralls Jul 24, 2018
CHANGELOG.md chore(release): 1.2.2 Feb 13, 2019
LICENSE.md
README.md feat: minify CSS tagged template literals Feb 13, 2019
declarations.d.ts feat: initial release Jul 23, 2018
index.ts test: fix type issues Sep 13, 2018
jasmine.json feat: initial release Jul 23, 2018
package-lock.json chore(release): 1.2.2 Feb 13, 2019
package.json
tsconfig.json fix: update dependencies and typings Sep 13, 2018

README.md

rollup-plugin-minify-html-literals

npm Build Status Coverage Status

Uses minify-html-literals to minify HTML and CSS markup inside JavaScript template literal strings.

Usage

import babel from 'rollup-plugin-babel';
import minifyHTML from 'rollup-plugin-minify-html-literals';
import { uglify } from 'rollup-plugin-uglify';

export default {
  entry: 'index.js',
  dest: 'dist/index.js',
  plugins: [
    minifyHTML(),
    // Order plugin before transpilers and other minifiers
    babel(),
    uglify()
  ]
};

By default, this will minify any tagged template literal string whose tag contains "html" or "css" (case insensitive). Additional options may be specified to control what templates should be minified.

Options

export default {
  entry: 'index.js',
  dest: 'dist/index.js',
  plugins: [
    minifyHTML({
      // minimatch of files to minify
      include: [],
      // minimatch of files not to minify
      exclude: [],
      // set to `true` to abort bundling on a minification error
      failOnError: false,
      // minify-html-literals options
      // https://www.npmjs.com/package/minify-html-literals#options
      options: null,

      // Advanced Options
      // Override minify-html-literals function
      minifyHTMLLiterals: null,
      // Override rollup-pluginutils filter from include/exclude
      filter: null
    })
  ]
};

Examples

Minify Polymer Templates

import minifyHTML from 'rollup-plugin-minify-html-literals';
import { defaultShouldMinify } from 'minify-html-literals';

export default {
  entry: 'index.js',
  dest: 'dist/index.js',
  plugins: [
    minifyHTML({
      options: {
        shouldMinify(template) {
          return (
            defaultShouldMinify(template) ||
            template.parts.some(part => {
              // Matches Polymer templates that are not tagged
              return (
                part.text.includes('<style') ||
                part.text.includes('<dom-module')
              );
            })
          );
        }
      }
    })
  ]
};