首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UglifyjsWebpackPlugin

这个插件使用UglifyJS v3 uglify-es来缩小你的JavaScript

??webpack包含相同的插件webpack.optimize.UglifyJsPlugin。该文档除安装说明外均有效

安装

代码语言:javascript
复制
npm i -D uglifyjs-webpack-plugin

用法

webpack.config.js

代码语言:javascript
复制
const UglifyJSPlugin = require('uglifyjs-webpack-plugin')

module.exports = {
  plugins: [
    new UglifyJSPlugin()
  ]
}

选项

Name

类型

默认

描述

test

{RegExp|Array<RegExp>}

/.js$/i

测试以匹配文件

include

{RegExp|Array<RegExp>}

undefined

要包含的文件

exclude

{RegExp|Array<RegExp>}

undefined

要排除的文件

cache

{Boolean|String}

false

启用文件缓存

parallel

{Boolean|Object}

false

使用多进程并行运行来提高构建速度

sourceMap

{Boolean}

false

使用 source map 将错误信息的位置映射到模块(这会减慢编译的速度) ?? cheap-source-map 选项不适用于此插件

uglifyOptions

{Object}

{...defaults}

uglify选项

extractComments

{Boolean|RegExp|Function<(node, comment) -> {Boolean|Object}>}

false

是否将注释提取到单独的文件,(查看[详细](https://github.com/webpack/webpack/commit/71933e979e51c533b432658d5e37917f9e71595a(`webpack >= 2.3.0`)

warningsFilter

{Function(source) -> {Boolean}}

()=> true

允许过滤uglify警告

webpack.config.js

代码语言:javascript
复制
[
  new UglifyJSPlugin({
    test: /\.js($|\?)/i
  })
]

include

webpack.config.js

代码语言:javascript
复制
[
  new UglifyJSPlugin({
    include: /\/includes/
  })
]

exclude

webpack.config.js

代码语言:javascript
复制
[
  new UglifyJSPlugin({
    exclude: /\/excludes/
  })
]

cache

{Boolean}

webpack.config.js

代码语言:javascript
复制
[
  new UglifyJSPlugin({
    cache: true
  })
]

启用文件缓存。缓存目录的默认路径:node_modules/.cache/uglifyjs-webpack-plugin

{String}

webpack.config.js

代码语言:javascript
复制
[
  new UglifyJSPlugin({
    cache: 'path/to/cache'
  })
]

缓存目录的路径。

parallel

{Boolean}

webpack.config.js

代码语言:javascript
复制
[
  new UglifyJSPlugin({
    parallel: true
  })
]

启用并行化。并发运行的默认数量:os.cpus().length - 1

{Number}

webpack.config.js

代码语言:javascript
复制
[
  new UglifyJSPlugin({
    parallel: 4
  })
]

并发运行数。

Parallel?并行化可以显着加快构建,因此强烈建议

sourceMap

webpack.config.js

代码语言:javascript
复制
[
  new UglifyJSPlugin({
    sourceMap: true
  })
]

?? 选项不适用于此插件cheap-source-map

Name

类型

默认

描述

ie8

{Boolean}

启用IE8支持

ecma

{Number}

未定义

支持的ECMAScript版本(5,6,7或8)。影响分析,压缩和输出选项

parse

{Object}

{}

附加的分析选项

mangle

{Boolean|Object}

真正

启用Name Mangling(请参阅Mangle Properties for advanced settings,与??一起使用)

output

{Object}

{}

额外的输出选项(默认值已优化以获得最佳压缩效果)

compress

{Boolean|Object}

真正

其他压缩选项

warnings

{Boolean}

显示警告

webpack.config.js

代码语言:javascript
复制
[
  new UglifyJSPlugin({
    uglifyOptions: {
      ie8: false,
      ecma: 8,
      parse: {...options},
      mangle: {
        ...options,
        properties: {
          // mangle property options
        }
      },
      output: {
        comments: false,
        beautify: false,
        ...options
      },
      compress: {...options},
      warnings: false
    }
  })
]

extractComments

{Boolean}

通常由comments选项保留的所有评论将被移至单独的文件。如果原始文件被命名foo.js,则评论将被存储到foo.js.LICENSE

{RegExp|String} or {Function<(node, comment) -> {Boolean}>}

所有匹配给定表达式的注释(分别true由函数求值)将被提取到单独的文件中。该comments选项指定是否保留该评论,即可以在提取其他评论(例如注释)的同时保留评论,甚至可以保留已提取的评论。

{Object}

Name

类型

默认

描述

condition

{Regex|Function}

| 正则表达式或函数(请参阅前一点)|

filename

{String|Function}

compilation.assetsfile

提取的注释将被存储的文件。可以是{String}或{Function <(string) - > {String}>},它将被赋予原始文件名。默认是将后缀.LICENSE附加到原始文件名

banner

{Boolean|String|Function}

/ *!有关许可证信息,请参阅$ {filename} .js.LICENSE * /

指向提取文件的横幅文本将被添加到原始文件的顶部。可以是假的(无横幅),{字符串}或{函数<(字符串) - > {字符串}将被存储提取的评论的文件名将被调用。将被包裹进评论

warningsFilter

webpack.config.js

代码语言:javascript
复制
[
  new UglifyJsPlugin({
    warningsFilter: (src) => true
  })
]

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com