terser-webpack-plugin

  • Version 5.6.0
  • Published
  • 180 kB
  • 4 dependencies
  • MIT license

Install

npm i terser-webpack-plugin
yarn add terser-webpack-plugin
pnpm add terser-webpack-plugin

Overview

Minimizer plugin for webpack

Index

Functions

Classes

Type Aliases

Namespaces

Functions

function cleanCssMinify

cleanCssMinify: typeof cleanCssMinify;
  • Minify CSS using clean-css.

    Parameter input

    input

    Parameter sourceMap

    source map

    Parameter minimizerOptions

    options

    Returns

    {Promise} minimized result

function cssnanoMinify

cssnanoMinify: typeof cssnanoMinify;
  • Minify CSS using cssnano (via postcss).

    Parameter input

    input

    Parameter sourceMap

    source map

    Parameter minimizerOptions

    options

    Returns

    {Promise} minimized result

function cssoMinify

cssoMinify: typeof cssoMinify;
  • Minify CSS using csso.

    Parameter input

    input

    Parameter sourceMap

    source map

    Parameter minimizerOptions

    options

    Returns

    {Promise} minimized result

function esbuildMinify

esbuildMinify: typeof esbuildMinify;
  • Parameter input

    input

    Parameter sourceMap

    source map

    Parameter minimizerOptions

    options

    Returns

    {Promise} minimized result

function esbuildMinifyCss

esbuildMinifyCss: typeof esbuildMinifyCss;
  • Minify CSS using esbuild (with the CSS loader).

    Parameter input

    input

    Parameter sourceMap

    source map

    Parameter minimizerOptions

    options

    Returns

    {Promise} minimized result

function htmlMinifierTerser

htmlMinifierTerser: typeof htmlMinifierTerser;
  • Minify HTML using html-minifier-terser.

    Parameter input

    input

    Parameter sourceMap

    source map (ignored for HTML)

    Parameter minimizerOptions

    options

    Returns

    {Promise} minimized result

function jsonMinify

jsonMinify: typeof jsonMinify;
  • Parameter input

    input

    Parameter sourceMap

    source map

    Parameter minimizerOptions

    options

    Returns

    {Promise} minimized result

function lightningCssMinify

lightningCssMinify: typeof lightningCssMinify;
  • Minify CSS using lightningcss.

    Parameter input

    input

    Parameter sourceMap

    source map

    Parameter minimizerOptions

    options

    Returns

    {Promise} minimized result

function minifyHtmlNode

minifyHtmlNode: typeof minifyHtmlNode;
  • Minify HTML using @minify-html/node.

    Parameter input

    input

    Parameter sourceMap

    source map (ignored for HTML)

    Parameter minimizerOptions

    options

    Returns

    {Promise} minimized result

function swcMinify

swcMinify: typeof swcMinify;
  • Parameter input

    input

    Parameter sourceMap

    source map

    Parameter minimizerOptions

    options

    Parameter extractComments

    extract comments option

    Returns

    {Promise} minimized result

function swcMinifyCss

swcMinifyCss: typeof swcMinifyCss;
  • Minify CSS using @swc/css.

    Parameter input

    input

    Parameter sourceMap

    source map

    Parameter minimizerOptions

    options

    Returns

    {Promise} minimized result

function swcMinifyHtml

swcMinifyHtml: typeof swcMinifyHtml;
  • Minify a complete HTML document using @swc/html.

    Parameter input

    input

    Parameter sourceMap

    source map (ignored for HTML)

    Parameter minimizerOptions

    options

    Returns

    {Promise} minimized result

function swcMinifyHtmlFragment

swcMinifyHtmlFragment: typeof swcMinifyHtmlFragment;
  • Minify an HTML fragment using @swc/html.

    Use this for partial HTML (e.g. inside <template></template> tags or HTML strings that are inserted into another document).

    Parameter input

    input

    Parameter sourceMap

    source map (ignored for HTML)

    Parameter minimizerOptions

    options

    Returns

    {Promise} minimized result

function terserMinify

terserMinify: typeof terserMinify;
  • Parameter input

    input

    Parameter sourceMap

    source map

    Parameter minimizerOptions

    options

    Parameter extractComments

    extract comments option

    Returns

    {Promise} minimized result

function uglifyJsMinify

uglifyJsMinify: typeof uglifyJsMinify;
  • Parameter input

    input

    Parameter sourceMap

    source map

    Parameter minimizerOptions

    options

    Parameter extractComments

    extract comments option

    Returns

    {Promise} minimized result

Classes

class TerserPlugin

class TerserPlugin<T = import('terser').MinifyOptions> {}
  • [T=import("terser").MinifyOptions]

constructor

constructor(
options?: BasePluginOptions &
(
| {
minify?: MinimizerImplementation<T>;
minimizerOptions?: MinimizerOptions<T>;
terserOptions?: MinimizerOptions<T>;
}
| {
minify: MinimizerImplementation<T>;
minimizerOptions?: MinimizerOptions<T>;
terserOptions?: MinimizerOptions<T>;
}
)
);
  • Parameter options

    options

method apply

apply: (compiler: any) => void;
  • Parameter compiler

    compiler

    Returns

    {void}

Type Aliases

type Asset

type Asset = import('webpack').Asset;

    type AssetInfo

    type AssetInfo = import('webpack').AssetInfo;

      type BasePluginOptions

      type BasePluginOptions = {
      /**
      * test rule
      */
      test?: Rules | undefined;
      /**
      * include rile
      */
      include?: Rules | undefined;
      /**
      * exclude rule
      */
      exclude?: Rules | undefined;
      /**
      * extract comments options
      */
      extractComments?: ExtractCommentsOptions | undefined;
      /**
      * parallel option
      */
      parallel?: Parallel | undefined;
      };

        type BasicMinimizerImplementation

        type BasicMinimizerImplementation<T> = (
        input: Input,
        sourceMap: RawSourceMap | undefined,
        minifyOptions: MinimizerOptions<T>,
        extractComments: ExtractCommentsOptions | undefined
        ) => Promise<MinimizedResult> | MinimizedResult;

          type Compilation

          type Compilation = import('webpack').Compilation;

            type Compiler

            type Compiler = import('webpack').Compiler;

              type CustomOptions

              type CustomOptions = {
              [key: string]: EXPECTED_ANY;
              };

                type DefinedDefaultMinimizerAndOptions

                type DefinedDefaultMinimizerAndOptions<T> = T extends import('terser').MinifyOptions
                ? {
                minify?: MinimizerImplementation<T> | undefined;
                minimizerOptions?: MinimizerOptions<T> | undefined;
                terserOptions?: MinimizerOptions<T> | undefined;
                }
                : {
                minify: MinimizerImplementation<T>;
                minimizerOptions?: MinimizerOptions<T> | undefined;
                terserOptions?: MinimizerOptions<T> | undefined;
                };

                  type ErrorObject

                  type ErrorObject = {
                  /**
                  * message
                  */
                  message: string;
                  /**
                  * line number
                  */
                  line?: number | undefined;
                  /**
                  * column number
                  */
                  column?: number | undefined;
                  /**
                  * error stack trace
                  */
                  stack?: string | undefined;
                  };

                    type EXPECTED_ANY

                    type EXPECTED_ANY = any;

                      type EXPECTED_OBJECT

                      type EXPECTED_OBJECT = object;

                        type ExtractCommentsBanner

                        type ExtractCommentsBanner = boolean | string | ((commentsFile: string) => string);

                          type ExtractCommentsCondition

                          type ExtractCommentsCondition =
                          | boolean
                          | 'all'
                          | 'some'
                          | RegExp
                          | ExtractCommentsFunction;

                            type ExtractCommentsFilename

                            type ExtractCommentsFilename = TemplatePath;

                              type ExtractCommentsFunction

                              type ExtractCommentsFunction = (
                              astNode: EXPECTED_ANY,
                              comment: {
                              value: string;
                              type: 'comment1' | 'comment2' | 'comment3' | 'comment4';
                              pos: number;
                              line: number;
                              col: number;
                              }
                              ) => boolean;

                                type ExtractCommentsObject

                                type ExtractCommentsObject = {
                                /**
                                * condition which comments need to be expected
                                */
                                condition?: ExtractCommentsCondition | undefined;
                                /**
                                * filename for extracted comments
                                */
                                filename?: ExtractCommentsFilename | undefined;
                                /**
                                * banner in filename for extracted comments
                                */
                                banner?: ExtractCommentsBanner | undefined;
                                };

                                  type ExtractCommentsOptions

                                  type ExtractCommentsOptions = ExtractCommentsCondition | ExtractCommentsObject;

                                    type InferDefaultType

                                    type InferDefaultType<T> = T extends infer U ? U : CustomOptions;

                                      type Input

                                      type Input = {
                                      [file: string]: string;
                                      };

                                        type InternalOptions

                                        type InternalOptions<T> = {
                                        /**
                                        * name
                                        */
                                        name: string;
                                        /**
                                        * input
                                        */
                                        input: string;
                                        /**
                                        * input source map
                                        */
                                        inputSourceMap: RawSourceMap | undefined;
                                        /**
                                        * extract comments option
                                        */
                                        extractComments: ExtractCommentsOptions | undefined;
                                        /**
                                        * minimizer
                                        */
                                        minimizer: {
                                        implementation: MinimizerImplementation<T>;
                                        options: MinimizerOptions<T>;
                                        };
                                        /**
                                        * true when code is a EC module, otherwise false
                                        */
                                        module?: boolean | undefined;
                                        /**
                                        * ecma version
                                        */
                                        ecma?: (number | string) | undefined;
                                        };

                                          type InternalPluginOptions

                                          type InternalPluginOptions<T> = BasePluginOptions & {
                                          minimizer: {
                                          implementation: MinimizerImplementation<T>;
                                          options: MinimizerOptions<T>;
                                          };
                                          };

                                            type JestWorker

                                            type JestWorker = import('jest-worker').Worker;

                                              type MinimizedResult

                                              type MinimizedResult = {
                                              /**
                                              * code
                                              */
                                              code?: string | undefined;
                                              /**
                                              * source map
                                              */
                                              map?: RawSourceMap | undefined;
                                              /**
                                              * errors
                                              */
                                              errors?: (Error | string)[] | undefined;
                                              /**
                                              * warnings
                                              */
                                              warnings?: (Error | string)[] | undefined;
                                              /**
                                              * extracted comments
                                              */
                                              extractedComments?: string[] | undefined;
                                              };

                                                type MinimizeFunctionHelpers

                                                type MinimizeFunctionHelpers = {
                                                /**
                                                * function that returns version of minimizer
                                                */
                                                getMinimizerVersion?: (() => string | undefined) | undefined;
                                                /**
                                                * true when minimizer support worker threads, otherwise false
                                                */
                                                supportsWorkerThreads?: (() => boolean | undefined) | undefined;
                                                /**
                                                * true when minimizer support worker, otherwise false
                                                */
                                                supportsWorker?: (() => boolean | undefined) | undefined;
                                                /**
                                                * return true when the minimizer supports the asset, otherwise false. When an array of minimizers is configured, each asset is dispatched only to the minimizers whose `filter` accepts it. Assets rejected by every minimizer in the array are skipped entirely.
                                                */
                                                filter?: ((name: string, info?: AssetInfo) => boolean | undefined) | undefined;
                                                };

                                                  type MinimizerImplementation

                                                  type MinimizerImplementation<T> = T extends EXPECTED_ANY[]
                                                  ? {
                                                  [P in keyof T]: BasicMinimizerImplementation<T[P]> &
                                                  MinimizeFunctionHelpers;
                                                  }
                                                  : BasicMinimizerImplementation<T> & MinimizeFunctionHelpers;

                                                    type MinimizerOptions

                                                    type MinimizerOptions<T> = T extends EXPECTED_ANY[]
                                                    ? { [P in keyof T]?: T[P] & InferDefaultType<T[P]> }
                                                    : T & InferDefaultType<T>;

                                                      type MinimizerWorker

                                                      type MinimizerWorker<T> = JestWorker & {
                                                      transform: (options: string) => Promise<MinimizedResult>;
                                                      minify: (options: InternalOptions<T>) => Promise<MinimizedResult>;
                                                      };

                                                        type Parallel

                                                        type Parallel = undefined | boolean | number;

                                                          type RawSourceMap

                                                          type RawSourceMap = import('@jridgewell/trace-mapping').EncodedSourceMap & {
                                                          sources: string[];
                                                          sourcesContent?: string[];
                                                          file: string;
                                                          };

                                                            type Rule

                                                            type Rule = RegExp | string;

                                                              type Rules

                                                              type Rules = Rule[] | Rule;

                                                                type Schema

                                                                type Schema = import('schema-utils/declarations/validate').Schema;

                                                                  type TemplatePath

                                                                  type TemplatePath = import('webpack').TemplatePath;

                                                                    type TraceMap

                                                                    type TraceMap = import('@jridgewell/trace-mapping').TraceMap;

                                                                      Namespaces

                                                                      namespace cleanCssMinify

                                                                      namespace cleanCssMinify {}

                                                                        function filter

                                                                        filter: (name: string) => boolean;
                                                                        • Parameter name

                                                                          asset name

                                                                          Returns

                                                                          {boolean} true if name looks like a CSS file

                                                                        function getMinimizerVersion

                                                                        getMinimizerVersion: () => string | undefined;
                                                                        • Returns

                                                                          {string | undefined} the minimizer version

                                                                        function supportsWorkerThreads

                                                                        supportsWorkerThreads: () => boolean | undefined;
                                                                        • Returns

                                                                          {boolean | undefined} true if worker threads are supported

                                                                        namespace cssnanoMinify

                                                                        namespace cssnanoMinify {}

                                                                          function filter

                                                                          filter: (name: string) => boolean;
                                                                          • Parameter name

                                                                            asset name

                                                                            Returns

                                                                            {boolean} true if name looks like a CSS file

                                                                          function getMinimizerVersion

                                                                          getMinimizerVersion: () => string | undefined;
                                                                          • Returns

                                                                            {string | undefined} the minimizer version

                                                                          function supportsWorkerThreads

                                                                          supportsWorkerThreads: () => boolean | undefined;
                                                                          • Returns

                                                                            {boolean | undefined} true if worker threads are supported

                                                                          namespace cssoMinify

                                                                          namespace cssoMinify {}

                                                                            function filter

                                                                            filter: (name: string) => boolean;
                                                                            • Parameter name

                                                                              asset name

                                                                              Returns

                                                                              {boolean} true if name looks like a CSS file

                                                                            function getMinimizerVersion

                                                                            getMinimizerVersion: () => string | undefined;
                                                                            • Returns

                                                                              {string | undefined} the minimizer version

                                                                            function supportsWorkerThreads

                                                                            supportsWorkerThreads: () => boolean | undefined;
                                                                            • Returns

                                                                              {boolean | undefined} true if worker threads are supported

                                                                            namespace esbuildMinify

                                                                            namespace esbuildMinify {}

                                                                              function filter

                                                                              filter: (name: string) => boolean;
                                                                              • Parameter name

                                                                                asset name

                                                                                Returns

                                                                                {boolean} true if name looks like a JavaScript file

                                                                              function getMinimizerVersion

                                                                              getMinimizerVersion: () => string | undefined;
                                                                              • Returns

                                                                                {string | undefined} the minimizer version

                                                                              function supportsWorkerThreads

                                                                              supportsWorkerThreads: () => boolean | undefined;
                                                                              • Returns

                                                                                {boolean | undefined} true if worker thread is supported, false otherwise

                                                                              namespace esbuildMinifyCss

                                                                              namespace esbuildMinifyCss {}

                                                                                function filter

                                                                                filter: (name: string) => boolean;
                                                                                • Parameter name

                                                                                  asset name

                                                                                  Returns

                                                                                  {boolean} true if name looks like a CSS file

                                                                                function getMinimizerVersion

                                                                                getMinimizerVersion: () => string | undefined;
                                                                                • Returns

                                                                                  {string | undefined} the minimizer version

                                                                                function supportsWorkerThreads

                                                                                supportsWorkerThreads: () => boolean | undefined;
                                                                                • Returns

                                                                                  {boolean | undefined} false because esbuild is a native binding

                                                                                namespace htmlMinifierTerser

                                                                                namespace htmlMinifierTerser {}

                                                                                  function filter

                                                                                  filter: (name: string) => boolean;
                                                                                  • Parameter name

                                                                                    asset name

                                                                                    Returns

                                                                                    {boolean} true if name looks like an HTML file

                                                                                  function getMinimizerVersion

                                                                                  getMinimizerVersion: () => string | undefined;
                                                                                  • Returns

                                                                                    {string | undefined} the minimizer version

                                                                                  function supportsWorkerThreads

                                                                                  supportsWorkerThreads: () => boolean | undefined;
                                                                                  • Returns

                                                                                    {boolean | undefined} true if worker threads are supported

                                                                                  namespace jsonMinify

                                                                                  namespace jsonMinify {}

                                                                                    function filter

                                                                                    filter: (name: string) => boolean;
                                                                                    • Parameter name

                                                                                      asset name

                                                                                      Returns

                                                                                      {boolean} true if name looks like a JSON file

                                                                                    function getMinimizerVersion

                                                                                    getMinimizerVersion: () => string;

                                                                                      function supportsWorker

                                                                                      supportsWorker: () => boolean;

                                                                                        function supportsWorkerThreads

                                                                                        supportsWorkerThreads: () => boolean;

                                                                                          namespace lightningCssMinify

                                                                                          namespace lightningCssMinify {}

                                                                                            function filter

                                                                                            filter: (name: string) => boolean;
                                                                                            • Parameter name

                                                                                              asset name

                                                                                              Returns

                                                                                              {boolean} true if name looks like a CSS file

                                                                                            function getMinimizerVersion

                                                                                            getMinimizerVersion: () => string | undefined;
                                                                                            • Returns

                                                                                              {string | undefined} the minimizer version

                                                                                            function supportsWorkerThreads

                                                                                            supportsWorkerThreads: () => boolean | undefined;
                                                                                            • Returns

                                                                                              {boolean | undefined} false because lightningcss is a native binding

                                                                                            namespace minifyHtmlNode

                                                                                            namespace minifyHtmlNode {}

                                                                                              function filter

                                                                                              filter: (name: string) => boolean;
                                                                                              • Parameter name

                                                                                                asset name

                                                                                                Returns

                                                                                                {boolean} true if name looks like an HTML file

                                                                                              function getMinimizerVersion

                                                                                              getMinimizerVersion: () => string | undefined;
                                                                                              • Returns

                                                                                                {string | undefined} the minimizer version

                                                                                              function supportsWorkerThreads

                                                                                              supportsWorkerThreads: () => boolean | undefined;
                                                                                              • Returns

                                                                                                {boolean | undefined} false because @minify-html/node is a native binding

                                                                                              namespace swcMinify

                                                                                              namespace swcMinify {}

                                                                                                function filter

                                                                                                filter: (name: string) => boolean;
                                                                                                • Parameter name

                                                                                                  asset name

                                                                                                  Returns

                                                                                                  {boolean} true if name looks like a JavaScript file

                                                                                                function getMinimizerVersion

                                                                                                getMinimizerVersion: () => string | undefined;
                                                                                                • Returns

                                                                                                  {string | undefined} the minimizer version

                                                                                                function supportsWorkerThreads

                                                                                                supportsWorkerThreads: () => boolean | undefined;
                                                                                                • Returns

                                                                                                  {boolean | undefined} true if worker thread is supported, false otherwise

                                                                                                namespace swcMinifyCss

                                                                                                namespace swcMinifyCss {}

                                                                                                  function filter

                                                                                                  filter: (name: string) => boolean;
                                                                                                  • Parameter name

                                                                                                    asset name

                                                                                                    Returns

                                                                                                    {boolean} true if name looks like a CSS file

                                                                                                  function getMinimizerVersion

                                                                                                  getMinimizerVersion: () => string | undefined;
                                                                                                  • Returns

                                                                                                    {string | undefined} the minimizer version

                                                                                                  function supportsWorkerThreads

                                                                                                  supportsWorkerThreads: () => boolean | undefined;
                                                                                                  • Returns

                                                                                                    {boolean | undefined} false because @swc/css is a native binding

                                                                                                  namespace swcMinifyHtml

                                                                                                  namespace swcMinifyHtml {}

                                                                                                    function filter

                                                                                                    filter: (name: string) => boolean;
                                                                                                    • Parameter name

                                                                                                      asset name

                                                                                                      Returns

                                                                                                      {boolean} true if name looks like an HTML file

                                                                                                    function getMinimizerVersion

                                                                                                    getMinimizerVersion: () => string | undefined;
                                                                                                    • Returns

                                                                                                      {string | undefined} the minimizer version

                                                                                                    function supportsWorkerThreads

                                                                                                    supportsWorkerThreads: () => boolean | undefined;
                                                                                                    • Returns

                                                                                                      {boolean | undefined} false because @swc/html is a native binding

                                                                                                    namespace swcMinifyHtmlFragment

                                                                                                    namespace swcMinifyHtmlFragment {}

                                                                                                      function filter

                                                                                                      filter: (name: string) => boolean;
                                                                                                      • Parameter name

                                                                                                        asset name

                                                                                                        Returns

                                                                                                        {boolean} true if name looks like an HTML file

                                                                                                      function getMinimizerVersion

                                                                                                      getMinimizerVersion: () => string | undefined;
                                                                                                      • Returns

                                                                                                        {string | undefined} the minimizer version

                                                                                                      function supportsWorkerThreads

                                                                                                      supportsWorkerThreads: () => boolean | undefined;
                                                                                                      • Returns

                                                                                                        {boolean | undefined} false because @swc/html is a native binding

                                                                                                      namespace terserMinify

                                                                                                      namespace terserMinify {}

                                                                                                        function filter

                                                                                                        filter: (name: string) => boolean;
                                                                                                        • Parameter name

                                                                                                          asset name

                                                                                                          Returns

                                                                                                          {boolean} true if name looks like a JavaScript file

                                                                                                        function getMinimizerVersion

                                                                                                        getMinimizerVersion: () => string | undefined;
                                                                                                        • Returns

                                                                                                          {string | undefined} the minimizer version

                                                                                                        function supportsWorkerThreads

                                                                                                        supportsWorkerThreads: () => boolean | undefined;
                                                                                                        • Returns

                                                                                                          {boolean | undefined} true if worker thread is supported, false otherwise

                                                                                                        namespace uglifyJsMinify

                                                                                                        namespace uglifyJsMinify {}

                                                                                                          function filter

                                                                                                          filter: (name: string) => boolean;
                                                                                                          • Parameter name

                                                                                                            asset name

                                                                                                            Returns

                                                                                                            {boolean} true if name looks like a JavaScript file

                                                                                                          function getMinimizerVersion

                                                                                                          getMinimizerVersion: () => string | undefined;
                                                                                                          • Returns

                                                                                                            {string | undefined} the minimizer version

                                                                                                          function supportsWorkerThreads

                                                                                                          supportsWorkerThreads: () => boolean | undefined;
                                                                                                          • Returns

                                                                                                            {boolean | undefined} true if worker thread is supported, false otherwise

                                                                                                          Package Files (2)

                                                                                                          Dependencies (4)

                                                                                                          Dev Dependencies (42)

                                                                                                          Peer Dependencies (1)

                                                                                                          Badge

                                                                                                          To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

                                                                                                          You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/terser-webpack-plugin.

                                                                                                          • Markdown
                                                                                                            [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/terser-webpack-plugin)
                                                                                                          • HTML
                                                                                                            <a href="https://www.jsdocs.io/package/terser-webpack-plugin"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>