@ampproject/rollup-plugin-closure-compiler
    TypeScript icon, indicating that this package has built-in type declarations

    0.27.0 • Public • Published

    rollup-plugin-closure-compiler

    Leverage Closure Compiler to minify and optimize JavaScript with Rollup.

    Generally Closure Compiler will produce superior minification than other projects, but historically has been more difficult to use. The goal of this plugin is to reduce this friction.

    Installation

    npm install @ampproject/rollup-plugin-closure-compiler --save-dev

    Usage

    Invoke Closure Compiler from your Rollup configuration.

    // rollup.config.js
    import compiler from '@ampproject/rollup-plugin-closure-compiler';
    
    export default {
      input: 'main.js',
      output: {
        file: 'bundle.js',
        format: 'iife',
      },
      plugins: [
        compiler(),
      ],
    }

    If you would like to provide additional flags and options to Closure Compiler, pass them via key-value pairs.

    // rollup.config.js
    import compiler from '@ampproject/rollup-plugin-closure-compiler';
    
    export default {
      input: 'main.js',
      output: {
        file: 'bundle.js',
        format: 'iife',
      },
      plugins: [
        compiler({
          formatting: 'PRETTY_PRINT'
        }),
      ],
    }

    Automatic Closure Configuration

    This plugin will modify the enable the assume_function_wrapper output option for Closure Compiler when es format is specifed to Rollup. Note: This is overrideable via passed flags and options.

    // rollup.config.js
    import compiler from '@ampproject/rollup-plugin-closure-compiler';
    
    export default {
      input: 'main.js',
      output: {
        file: 'bundle.js',
        format: 'es',
      },
      plugins: [
        compiler(),
      ],
    }

    If your Rollup configuration outputs an IIFE format bundle with a specified name, this plugin will add an extern to ensure the name does not get mangled. Note: This is overrideable via passed flags and options.

    // rollup.config.js
    import compiler from '@ampproject/rollup-plugin-closure-compiler';
    
    export default {
      input: 'main.js',
      output: {
        file: 'bundle.js',
        format: 'iife',
        name: 'MyAwesomeThing'
      },
      plugins: [
        compiler(),
      ],
    }

    Security disclosures

    The AMP Project accepts responsible security disclosures through the Google Application Security program.

    Code of conduct

    The AMP Project strives for a positive and growing project community that provides a safe environment for everyone. All members, committers and volunteers in the community are required to act according to the code of conduct.

    License

    rollup-plugin-closure-compiler is licensed under the Apache License, Version 2.0.

    Install

    npm i @ampproject/rollup-plugin-closure-compiler

    DownloadsWeekly Downloads

    6,085

    Version

    0.27.0

    License

    Apache-2.0

    Unpacked Size

    205 kB

    Total Files

    42

    Last publish

    Collaborators

    • ampproject-admin
    • kristoferbaxter
    • jridgewell
    • choumx
    • amp-toolbox
    • fstanis
    • erwinmombay
    • samouri
    • caroqliu
    • rsimha
    • dvoytenko
    • patrickkettner
    • alanorozco
    • kdwan
    • ampprojectbot
    • esth