-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path144.f9e5f393780a1ec45388.chunk.js
1 lines (1 loc) · 59.9 KB
/
144.f9e5f393780a1ec45388.chunk.js
1
(window.webpackJsonp=window.webpackJsonp||[]).push([[144],{405:function(n,s,a){"use strict";a.r(s),s.default='<p><a href="https://npmjs.com/package/uglifyjs-webpack-plugin"><img src="https://img.shields.io/npm/v/uglifyjs-webpack-plugin.svg" alt="npm"></a>\n<a href="https://nodejs.org/"><img src="https://img.shields.io/node/v/uglifyjs-webpack-plugin.svg" alt="node"></a>\n<a href="https://david-dm.org/webpack-contrib/uglifyjs-webpack-plugin"><img src="https://david-dm.org/webpack-contrib/uglifyjs-webpack-plugin.svg" alt="deps"></a>\n<a href="https://dev.azure.com/webpack-contrib/uglifyjs-webpack-plugin/_build/latest?definitionId=8&branchName=master"><img src="https://dev.azure.com/webpack-contrib/uglifyjs-webpack-plugin/_apis/build/status/webpack-contrib.uglifyjs-webpack-plugin?branchName=master" alt="tests"></a>\n<a href="https://codecov.io/gh/webpack-contrib/uglifyjs-webpack-plugin"><img src="https://codecov.io/gh/webpack-contrib/uglifyjs-webpack-plugin/branch/master/graph/badge.svg" alt="cover"></a>\n<a href="https://gitter.im/webpack/webpack"><img src="https://img.shields.io/badge/gitter-webpack%2Fwebpack-brightgreen.svg" alt="chat"></a>\n<a href="https://packagephobia.now.sh/result?p=uglifyjs-webpack-plugin"><img src="https://packagephobia.now.sh/badge?p=uglifyjs-webpack-plugin" alt="size"></a></p>\n<p>This plugin uses <a href="https://github.com/mishoo/UglifyJS2">uglify-js</a> to minify your JavaScript.</p>\n<h2 id="requirements">Requirements<a href="#requirements" aria-hidden="true"><span class="icon icon-link"></span></a></h2>\n<p>This module requires a minimum of Node v6.9.0 and Webpack v4.0.0.</p>\n<h2 id="getting-started">Getting Started<a href="#getting-started" aria-hidden="true"><span class="icon icon-link"></span></a></h2>\n<p>To begin, you\'ll need to install <code>uglifyjs-webpack-plugin</code>:</p>\n<pre><code class="hljs language-console">$ npm install uglifyjs-webpack-plugin --save-dev\n</code></pre>\n<p>Then add the plugin to your <code>webpack</code> config. For example:</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js"><span class="token keyword">const</span> UglifyJsPlugin <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">\'uglifyjs-webpack-plugin\'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\nmodule<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<p>And run <code>webpack</code> via your preferred method.</p>\n<h2 id="options">Options<a href="#options" aria-hidden="true"><span class="icon icon-link"></span></a></h2>\n<h3 id="test"><code>test</code><a href="#test" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Type: <code>String|RegExp|Array<String|RegExp></code>\nDefault: <code>/\\.js(\\?.*)?$/i</code></p>\n<p>Test to match files against.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n test<span class="token punctuation">:</span> <span class="token regex">/\\.js(\\?.*)?$/i</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h3 id="include"><code>include</code><a href="#include" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Type: <code>String|RegExp|Array<String|RegExp></code>\nDefault: <code>undefined</code></p>\n<p>Files to include.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n include<span class="token punctuation">:</span> <span class="token regex">/\\/includes/</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h3 id="exclude"><code>exclude</code><a href="#exclude" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Type: <code>String|RegExp|Array<String|RegExp></code>\nDefault: <code>undefined</code></p>\n<p>Files to exclude.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n exclude<span class="token punctuation">:</span> <span class="token regex">/\\/excludes/</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h3 id="chunkfilter"><code>chunkFilter</code><a href="#chunkfilter" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Type: <code>Function<(chunk) -> boolean></code>\nDefault: <code>() => true</code></p>\n<p>Allowing to filter which chunks should be uglified (by default all chunks are uglified).\nReturn <code>true</code> to uglify the chunk, <code>false</code> otherwise.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n chunkFilter<span class="token punctuation">:</span> <span class="token punctuation">(</span>chunk<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n <span class="token comment">// Exclude uglification for the `vendor` chunk</span>\n <span class="token keyword">if</span> <span class="token punctuation">(</span>chunk<span class="token punctuation">.</span>name <span class="token operator">===</span> <span class="token string">\'vendor\'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span>\n\n <span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h3 id="cache"><code>cache</code><a href="#cache" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Type: <code>Boolean|String</code>\nDefault: <code>false</code></p>\n<p>Enable file caching.\nDefault path to cache directory: <code>node_modules/.cache/uglifyjs-webpack-plugin</code>.</p>\n<blockquote>\n<p>ℹ️ If you use your own <code>minify</code> function please read the <code>minify</code> section for cache invalidation correctly.</p>\n</blockquote>\n<h4 id="boolean"><code>Boolean</code><a href="#boolean" aria-hidden="true"><span class="icon icon-link"></span></a></h4>\n<p>Enable/disable file caching.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n cache<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h4 id="string"><code>String</code><a href="#string" aria-hidden="true"><span class="icon icon-link"></span></a></h4>\n<p>Enable file caching and set path to cache directory.</p>\n<p><strong>webpack.config.js</strong></p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n cache<span class="token punctuation">:</span> <span class="token string">\'path/to/cache\'</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h3 id="cachekeys"><code>cacheKeys</code><a href="#cachekeys" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Type: <code>Function<(defaultCacheKeys, file) -> Object></code>\nDefault: <code>defaultCacheKeys => defaultCacheKeys</code></p>\n<p>Allows you to override default cache keys.</p>\n<p>Default cache keys:</p>\n<pre><code class="hljs language-js"><span class="token punctuation">(</span><span class="token punctuation">{</span>\n <span class="token string">\'uglify-js\'</span><span class="token punctuation">:</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">\'uglify-js/package.json\'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>version<span class="token punctuation">,</span> <span class="token comment">// uglify version</span>\n <span class="token string">\'uglifyjs-webpack-plugin\'</span><span class="token punctuation">:</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">\'../package.json\'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>version<span class="token punctuation">,</span> <span class="token comment">// plugin version</span>\n <span class="token string">\'uglifyjs-webpack-plugin-options\'</span><span class="token punctuation">:</span> <span class="token keyword">this</span><span class="token punctuation">.</span>options<span class="token punctuation">,</span> <span class="token comment">// plugin options</span>\n path<span class="token punctuation">:</span> compiler<span class="token punctuation">.</span>outputPath <span class="token operator">?</span> <span class="token template-string"><span class="token string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>compiler<span class="token punctuation">.</span>outputPath<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">/</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>file<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">`</span></span> <span class="token punctuation">:</span> file<span class="token punctuation">,</span> <span class="token comment">// asset path</span>\n hash<span class="token punctuation">:</span> crypto\n <span class="token punctuation">.</span><span class="token function">createHash</span><span class="token punctuation">(</span><span class="token string">\'md4\'</span><span class="token punctuation">)</span>\n <span class="token punctuation">.</span><span class="token function">update</span><span class="token punctuation">(</span>input<span class="token punctuation">)</span>\n <span class="token punctuation">.</span><span class="token function">digest</span><span class="token punctuation">(</span><span class="token string">\'hex\'</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token comment">// source file hash</span>\n<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n cache<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n cacheKeys<span class="token punctuation">:</span> <span class="token punctuation">(</span>defaultCacheKeys<span class="token punctuation">,</span> file<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n defaultCacheKeys<span class="token punctuation">.</span>myCacheKey <span class="token operator">=</span> <span class="token string">\'myCacheKeyValue\'</span><span class="token punctuation">;</span>\n\n <span class="token keyword">return</span> defaultCacheKeys<span class="token punctuation">;</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h3 id="parallel"><code>parallel</code><a href="#parallel" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Type: <code>Boolean|Number</code>\nDefault: <code>false</code></p>\n<p>Use multi-process parallel running to improve the build speed.\nDefault number of concurrent runs: <code>os.cpus().length - 1</code>.</p>\n<blockquote>\n<p>ℹ️ Parallelization can speedup your build significantly and is therefore <strong>highly recommended</strong>.</p>\n</blockquote>\n<h4 id="boolean-1"><code>Boolean</code><a href="#boolean-1" aria-hidden="true"><span class="icon icon-link"></span></a></h4>\n<p>Enable/disable multi-process parallel running.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n parallel<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h4 id="number"><code>Number</code><a href="#number" aria-hidden="true"><span class="icon icon-link"></span></a></h4>\n<p>Enable multi-process parallel running and set number of concurrent runs.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n parallel<span class="token punctuation">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h3 id="sourcemap"><code>sourceMap</code><a href="#sourcemap" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Type: <code>Boolean</code>\nDefault: <code>false</code></p>\n<p>Use source maps to map error message locations to modules (this slows down the compilation).\nIf you use your own <code>minify</code> function please read the <code>minify</code> section for handling source maps correctly.</p>\n<blockquote>\n<p>⚠️ <strong><code>cheap-source-map</code> options don\'t work with this plugin</strong>.</p>\n</blockquote>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n sourceMap<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h3 id="minify"><code>minify</code><a href="#minify" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Type: <code>Function</code>\nDefault: <code>undefined</code></p>\n<p>Allows you to override default minify function.\nBy default plugin uses <a href="https://github.com/mishoo/UglifyJS2">uglify-js</a> package.\nUseful for using and testing unpublished versions or forks.</p>\n<blockquote>\n<p>⚠️ <strong>Always use <code>require</code> inside <code>minify</code> function when <code>parallel</code> option enabled</strong>.</p>\n</blockquote>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n <span class="token function">minify</span><span class="token punctuation">(</span>file<span class="token punctuation">,</span> sourceMap<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token keyword">const</span> extractedComments <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>\n\n <span class="token comment">// Custom logic for extract comments</span>\n\n <span class="token keyword">const</span> <span class="token punctuation">{</span> error<span class="token punctuation">,</span> map<span class="token punctuation">,</span> code<span class="token punctuation">,</span> warnings <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">\'uglify-module\'</span><span class="token punctuation">)</span> <span class="token comment">// Or require(\'./path/to/uglify-module\')</span>\n <span class="token punctuation">.</span><span class="token function">minify</span><span class="token punctuation">(</span>file<span class="token punctuation">,</span> <span class="token punctuation">{</span>\n <span class="token comment">/* Your options for minification */</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n <span class="token keyword">return</span> <span class="token punctuation">{</span> error<span class="token punctuation">,</span> map<span class="token punctuation">,</span> code<span class="token punctuation">,</span> warnings<span class="token punctuation">,</span> extractedComments <span class="token punctuation">}</span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h3 id="uglifyoptions"><code>uglifyOptions</code><a href="#uglifyoptions" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Type: <code>Object</code>\nDefault: <a href="https://github.com/mishoo/UglifyJS2#minify-options">default</a></p>\n<p>UglifyJS minify <a href="https://github.com/mishoo/UglifyJS2#minify-options">options</a>.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n uglifyOptions<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n warnings<span class="token punctuation">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>\n parse<span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span>\n compress<span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span>\n mangle<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span> <span class="token comment">// Note `mangle.properties` is `false` by default.</span>\n output<span class="token punctuation">:</span> <span class="token keyword">null</span><span class="token punctuation">,</span>\n toplevel<span class="token punctuation">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>\n nameCache<span class="token punctuation">:</span> <span class="token keyword">null</span><span class="token punctuation">,</span>\n ie8<span class="token punctuation">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>\n keep_fnames<span class="token punctuation">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h3 id="extractcomments"><code>extractComments</code><a href="#extractcomments" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Type: <code>Boolean|String|RegExp|Function<(node, comment) -> Boolean|Object></code>\nDefault: <code>false</code></p>\n<p>Whether comments shall be extracted to a separate file, (see <a href="https://github.com/webpack/webpack/commit/71933e979e51c533b432658d5e37917f9e71595a">details</a>).\nBy default extract only comments using <code>/^\\**!|@preserve|@license|@cc_on/i</code> regexp condition and remove remaining comments.\nIf the original file is named <code>foo.js</code>, then the comments will be stored to <code>foo.js.LICENSE</code>.\nThe <code>uglifyOptions.output.comments</code> option specifies whether the comment will be preserved, i.e. it is possible to preserve some comments (e.g. annotations) while extracting others or even preserving comments that have been extracted.</p>\n<h4 id="boolean-2"><code>Boolean</code><a href="#boolean-2" aria-hidden="true"><span class="icon icon-link"></span></a></h4>\n<p>Enable/disable extracting comments.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n extractComments<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h4 id="string-1"><code>String</code><a href="#string-1" aria-hidden="true"><span class="icon icon-link"></span></a></h4>\n<p>Extract <code>all</code> or <code>some</code> (use <code>/^\\**!|@preserve|@license|@cc_on/i</code> RegExp) comments.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n extractComments<span class="token punctuation">:</span> <span class="token string">\'all\'</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h4 id="regexp"><code>RegExp</code><a href="#regexp" aria-hidden="true"><span class="icon icon-link"></span></a></h4>\n<p>All comments that match the given expression will be extracted to the separate file.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n extractComments<span class="token punctuation">:</span> <span class="token regex">/@extract/i</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h4 id="functionnode-comment---boolean"><code>Function<(node, comment) -> Boolean></code><a href="#functionnode-comment---boolean" aria-hidden="true"><span class="icon icon-link"></span></a></h4>\n<p>All comments that match the given expression will be extracted to the separate file.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n extractComments<span class="token punctuation">:</span> <span class="token keyword">function</span><span class="token punctuation">(</span>astNode<span class="token punctuation">,</span> comment<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token regex">/@extract/i</span><span class="token punctuation">.</span><span class="token function">test</span><span class="token punctuation">(</span>comment<span class="token punctuation">.</span>value<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span>\n\n <span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h4 id="object"><code>Object</code><a href="#object" aria-hidden="true"><span class="icon icon-link"></span></a></h4>\n<p>Allow to customize condition for extract comments, specify extracted file name and banner.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n extractComments<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n condition<span class="token punctuation">:</span> <span class="token regex">/^\\**!|@preserve|@license|@cc_on/i</span><span class="token punctuation">,</span>\n <span class="token function">filename</span><span class="token punctuation">(</span>file<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token keyword">return</span> <span class="token template-string"><span class="token string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>file<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">.LICENSE`</span></span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token function">banner</span><span class="token punctuation">(</span>licenseFile<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token keyword">return</span> <span class="token template-string"><span class="token string">`License information can be found in </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>licenseFile<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">`</span></span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h5 id="condition"><code>condition</code><a href="#condition" aria-hidden="true"><span class="icon icon-link"></span></a></h5>\n<p>Type: <code>Boolean|String|RegExp|Function<(node, comment) -> Boolean|Object></code></p>\n<p>Condition what comments you need extract.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n extractComments<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n condition<span class="token punctuation">:</span> <span class="token string">\'some\'</span><span class="token punctuation">,</span>\n <span class="token function">filename</span><span class="token punctuation">(</span>file<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token keyword">return</span> <span class="token template-string"><span class="token string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>file<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">.LICENSE`</span></span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token function">banner</span><span class="token punctuation">(</span>licenseFile<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token keyword">return</span> <span class="token template-string"><span class="token string">`License information can be found in </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>licenseFile<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">`</span></span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h5 id="filename"><code>filename</code><a href="#filename" aria-hidden="true"><span class="icon icon-link"></span></a></h5>\n<p>Type: <code>Regex|Function<(string) -> String></code>\nDefault: <code>${file}.LICENSE</code></p>\n<p>The file where the extracted comments will be stored.\nDefault is to append the suffix <code>.LICENSE</code> to the original filename.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n extractComments<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n condition<span class="token punctuation">:</span> <span class="token regex">/^\\**!|@preserve|@license|@cc_on/i</span><span class="token punctuation">,</span>\n filename<span class="token punctuation">:</span> <span class="token string">\'extracted-comments.js\'</span><span class="token punctuation">,</span>\n <span class="token function">banner</span><span class="token punctuation">(</span>licenseFile<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token keyword">return</span> <span class="token template-string"><span class="token string">`License information can be found in </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>licenseFile<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">`</span></span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h5 id="banner"><code>banner</code><a href="#banner" aria-hidden="true"><span class="icon icon-link"></span></a></h5>\n<p>Type: <code>Boolean|String|Function<(string) -> String></code>\nDefault: <code>/*! For license information please see ${commentsFile} */</code></p>\n<p>The banner text that points to the extracted file and will be added on top of the original file.\nCan be <code>false</code> (no banner), a <code>String</code>, or a <code>Function<(string) -> String></code> that will be called with the filename where extracted comments have been stored.\nWill be wrapped into comment.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n extractComments<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n condition<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n <span class="token function">filename</span><span class="token punctuation">(</span>file<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token keyword">return</span> <span class="token template-string"><span class="token string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>file<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">.LICENSE`</span></span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token function">banner</span><span class="token punctuation">(</span>commentsFile<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token keyword">return</span> <span class="token template-string"><span class="token string">`My custom banner about license information </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>commentsFile<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">`</span></span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h3 id="warningsfilter"><code>warningsFilter</code><a href="#warningsfilter" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Type: <code>Function<(warning, source) -> Boolean></code>\nDefault: <code>() => true</code></p>\n<p>Allow to filter <a href="https://github.com/mishoo/UglifyJS2">uglify-js</a> warnings.\nReturn <code>true</code> to keep the warning, <code>false</code> otherwise.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n warningsFilter<span class="token punctuation">:</span> <span class="token punctuation">(</span>warning<span class="token punctuation">,</span> source<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token regex">/Dropping unreachable code/i</span><span class="token punctuation">.</span><span class="token function">test</span><span class="token punctuation">(</span>warning<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span>\n\n <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token regex">/filename\\.js/i</span><span class="token punctuation">.</span><span class="token function">test</span><span class="token punctuation">(</span>source<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span>\n\n <span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h2 id="examples">Examples<a href="#examples" aria-hidden="true"><span class="icon icon-link"></span></a></h2>\n<h3 id="cache-and-parallel">Cache And Parallel<a href="#cache-and-parallel" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Enable cache and multi-process parallel running.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n cache<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n parallel<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h3 id="preserve-comments">Preserve Comments<a href="#preserve-comments" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Extract all legal comments (i.e. <code>/^\\**!|@preserve|@license|@cc_on/i</code>) and preserve <code>/@license/i</code> comments.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n uglifyOptions<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n output<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n comments<span class="token punctuation">:</span> <span class="token regex">/@license/i</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n extractComments<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h3 id="remove-comments">Remove Comments<a href="#remove-comments" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>If you avoid building with comments, set <strong>uglifyOptions.output.comments</strong> to <strong>false</strong> as in this config:</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n uglifyOptions<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n output<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n comments<span class="token punctuation">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h3 id="custom-minify-function">Custom Minify Function<a href="#custom-minify-function" aria-hidden="true"><span class="icon icon-link"></span></a></h3>\n<p>Override default minify function - use <a href="https://github.com/fabiosantoscode/terser">terser</a> for minification.</p>\n<p><strong>webpack.config.js</strong></p>\n<pre><code class="hljs language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span>\n optimization<span class="token punctuation">:</span> <span class="token punctuation">{</span>\n minimizer<span class="token punctuation">:</span> <span class="token punctuation">[</span>\n <span class="token keyword">new</span> <span class="token class-name">UglifyJsPlugin</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n <span class="token comment">// Uncomment lines below for cache invalidation correctly</span>\n <span class="token comment">// cache: true,</span>\n <span class="token comment">// cacheKeys(defaultCacheKeys) {</span>\n <span class="token comment">// delete defaultCacheKeys[\'uglify-js\'];</span>\n <span class="token comment">//</span>\n <span class="token comment">// return Object.assign(</span>\n <span class="token comment">// {},</span>\n <span class="token comment">// defaultCacheKeys,</span>\n <span class="token comment">// { \'uglify-js\': require(\'uglify-js/package.json\').version },</span>\n <span class="token comment">// );</span>\n <span class="token comment">// },</span>\n <span class="token function">minify</span><span class="token punctuation">(</span>file<span class="token punctuation">,</span> sourceMap<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token comment">// https://github.com/mishoo/UglifyJS2#minify-options</span>\n <span class="token keyword">const</span> uglifyJsOptions <span class="token operator">=</span> <span class="token punctuation">{</span>\n <span class="token comment">/* your `uglify-js` package options */</span>\n <span class="token punctuation">}</span><span class="token punctuation">;</span>\n\n <span class="token keyword">if</span> <span class="token punctuation">(</span>sourceMap<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n uglifyJsOptions<span class="token punctuation">.</span>sourceMap <span class="token operator">=</span> <span class="token punctuation">{</span>\n content<span class="token punctuation">:</span> sourceMap<span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span>\n\n <span class="token keyword">return</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">\'terser\'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">minify</span><span class="token punctuation">(</span>file<span class="token punctuation">,</span> uglifyJsOptions<span class="token punctuation">)</span><span class="token punctuation">;</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre>\n<h2 id="contributing">Contributing<a href="#contributing" aria-hidden="true"><span class="icon icon-link"></span></a></h2>\n<p>Please take a moment to read our contributing guidelines if you haven\'t yet done so.</p>\n<p><a href="https://github.com/webpack-contrib/uglifyjs-webpack-plugin/blob/master/.github/CONTRIBUTING.md">CONTRIBUTING</a></p>\n<h2 id="license">License<a href="#license" aria-hidden="true"><span class="icon icon-link"></span></a></h2>\n<p><a href="https://github.com/webpack-contrib/uglifyjs-webpack-plugin/blob/master/LICENSE">MIT</a></p>\n'}}]);