Package detail

@open-wc/rollup-plugin-polyfills-loader

open-wc6.3kMIT1.1.8

Plugin for generating an html file with rollup

rollup-plugin, minify, html, polyfill

readme


permalink: 'building/rollup-plugin-polyfills-loader.html' title: Rollup Plugin Polyfills Loader section: guides tags:

- guides

Rollup Plugin Polyfills Loader

Inject Polyfills Loader into a HTML file generated by @open-wc/rollup-plugin-html.

Examples

Basic rollup build

import html from '@open-wc/rollup-plugin-html';
import polyfillsLoader from '@open-wc/rollup-plugin-polyfills-loader';

export default {
  output: {
    dir: 'dist',
  },
  plugins: [
    html({
      inputPath: 'index.html',
      inject: false,
    }),
    polyfillsLoader({
      polyfills: {
        coreJs: true,
        fetch: true,
        webcomponents: true,
      },
    }),
  ],
};

Multiple rollup build outputs

import html from '@open-wc/rollup-plugin-html';
import polyfillsLoader from '@open-wc/rollup-plugin-polyfills-loader';

const htmlPlugin = html({
  inputPath: 'demo/single-build/index.html',
  inject: false,
});

export default {
  output: [
    {
      format: 'system',
      dir: './demo/dist/legacy',
      plugins: [htmlPlugin.addOutput('legacy')],
    },
    {
      format: 'es',
      dir: './demo/dist',
      plugins: [htmlPlugin.addOutput('modern')],
    },
  ],
  plugins: [
    htmlPlugin,
    polyfillsLoader({
      modernOutput: 'modern',
      legacyOutput: { name: 'legacy', test: "!('noModule' in HTMLScriptElement.prototype)" },
      polyfills: {
        coreJs: true,
        fetch: true,
        webcomponents: true,
      },
    }),
  ],
};

Customized file type

import html from '@open-wc/rollup-plugin-html';
import polyfillsLoader from '@open-wc/rollup-plugin-polyfills-loader';

const htmlPlugin = html({
  inputPath: 'demo/single-build/index.html',
  inject: false,
});

export default {
  output: [
    {
      format: 'es',
      dir: './demo/dist',
      plugins: [htmlPlugin.addOutput('modern')],
    },
    {
      format: 'es',
      dir: './demo/dist/legacy',
      plugins: [htmlPlugin.addOutput('legacy')],
    },
  ],
  plugins: [
    htmlPlugin,
    polyfillsLoader({
      modernOutput: { name: 'modern', type: 'module' },
      legacyOutput: {
        name: 'legacy',
        type: 'system',
        test: "!('noModule' in HTMLScriptElement.prototype)",
      },
      polyfills: {
        coreJs: true,
        fetch: true,
        webcomponents: true,
      },
    }),
  ],
};

Multi page build

import html from '@open-wc/rollup-plugin-html';
import polyfillsLoader from '@open-wc/rollup-plugin-polyfills-loader';

export default {
  output: {
    dir: './demo/dist',
  },
  plugins: [
    html({
      inputPath: './demo/multi-page/index.html',
    }),
    polyfillsLoader({
      htmlFileName: 'index.html',
      polyfills: { coreJs: true, fetch: true },
    }),

    html({
      inputPath: './demo/multi-page/pages/page-a.html',
      name: 'pages/page-a.html',
    }),
    polyfillsLoader({
      htmlFileName: 'pages/page-a.html',
      polyfills: { coreJs: true, fetch: true },
    }),

    html({
      inputPath: './demo/multi-page/pages/page-b.html',
      name: 'pages/page-b.html',
    }),
    polyfillsLoader({
      htmlFileName: 'pages/page-b.html',
      polyfills: { coreJs: true, fetch: true },
    }),

    html({
      inputPath: './demo/multi-page/pages/page-c.html',
      name: 'pages/page-c.html',
    }),
    polyfillsLoader({
      htmlFileName: 'pages/page-c.html',
      polyfills: { coreJs: true, fetch: true },
    }),
  ],
};

You can make this shorter with a helper function:

import html from '@open-wc/rollup-plugin-html';
import polyfillsLoader from '@open-wc/rollup-plugin-polyfills-loader';

function createPage(inputPath, name) {
  return [
    html({ inputPath, name }),
    polyfillsLoader({
      htmlFileName: name,
      polyfills: { coreJs: true, fetch: true },
    }),
  ];
}

export default {
  output: {
    dir: './demo/dist',
  },
  plugins: [
    ...createPage('./demo/multi-page/index.html', 'index.html'),
    ...createPage('./demo/multi-page/pages/page-a.html', 'pages/page-a.html'),
    ...createPage('./demo/multi-page/pages/page-b.html', 'pages/page-b.html'),
    ...createPage('./demo/multi-page/pages/page-c.html', 'pages/page-c.html'),
  ],
};

Types

import { PolyfillsConfig, FileType } from 'polyfills-loader';

export interface OutputConfig {
  name: string;
  type?: FileType;
}

export interface LegacyOutputConfig extends OutputConfig {
  test: string;
}

export interface PluginOptions {
  htmlFileName?: string;
  modernOutput?: OutputConfig;
  legacyOutput?: LegacyOutputConfig | LegacyOutputConfig[];
  polyfills?: PolyfillsConfig;
}

changelog

Change Log

1.1.8

Patch Changes

  • 17e9e7dc: Change type distribution workflow
  • Updated dependencies [17e9e7dc]
    • polyfills-loader@1.7.5

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

1.1.7 (2020-10-11)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

1.1.6 (2020-10-03)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

1.1.5 (2020-09-25)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

1.1.4 (2020-08-27)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

1.1.3 (2020-08-07)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

1.1.2 (2020-08-05)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

1.1.1 (2020-08-04)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

1.1.0 (2020-08-03)

Features

  • support building of multi page applications (mpa) (a654535)

1.0.7 (2020-05-27)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

1.0.6 (2020-05-17)

Bug Fixes

  • rollup-plugin-polyfills-loader: add missing .d.ts file (47bdeeb)

1.0.5 (2020-05-13)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

1.0.4 (2020-05-05)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

1.0.3 (2020-04-21)

Bug Fixes

  • polyfills-loader: allow forcing the polyfill (ee44812)

1.0.2 (2020-04-20)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

1.0.0 (2020-04-12)

Features

  • rollup-plugin-polyfills-loader: release v1 (eb6e30d)

BREAKING CHANGES

  • rollup-plugin-polyfills-loader: trigger v1 release

0.5.1 (2020-04-05)

Bug Fixes

  • polyfills-loader: don't remove element if it was already removed (1e500bc)

0.5.0 (2020-03-31)

Features

  • polyfills-loader: prefetch entrypoints (7e180d4)

0.4.3 (2020-03-26)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

0.4.2 (2020-03-24)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

0.4.1 (2020-03-19)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

0.4.0 (2020-03-18)

Features

  • rollup-plugin-polyfills-loader: allow setting file type explicitly (#1434) (c15f730)

0.3.2 (2020-03-16)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

0.3.1 (2020-03-15)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

0.3.0 (2020-03-15)

Features

  • es-dev-server: polyfill AbortController when not supported (fd03b29)

0.2.0 (2020-03-14)

Features

  • rollup-plugin-polyfills-loader: default to single html plugin (c1f4dee)

0.1.2 (2020-03-11)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

0.1.1 (2020-03-10)

Note: Version bump only for package @open-wc/rollup-plugin-polyfills-loader

0.1.0 (2020-03-08)

Features

  • polyfills-loader: add preload links (23428e3)
  • rollup-plugin-polyfills-loader: first release (39cc2db)

0.1.2 (2020-03-02)

Note: Version bump only for package @open-wc/rollup-plugin-html

0.1.1 (2020-02-29)

Note: Version bump only for package @open-wc/rollup-plugin-html

0.1.0 (2020-02-29)

Features

  • rollup-plugin-html: first release (9acb29a)