webpack -- 完整入门学习笔记(六)

一、css压缩

这一节主要讲压缩代码,正常我们打包生产环境代码,js文件已经是压缩的,但是css并没有压缩,所以需要通过插件来压缩css代码,这个插件是optimize-css-assets-webpack-plugincssnano
安装

npm install optimize-css-assets-webpack-plugin cssnano --save-dev

调用

配置
注意这个配置,还需要在与plugins统计的optimization.minimizer中调用,其实也可以直接就在这个里面调用配置,但是必须在plugins里面调用一下

optimization: {
    new OptimizeCss({
      assetNameRegExp: /\.style\.css$/g,
      cssProcessor: cssnano,
      cssProcessorOptions: { discardComments: { removeAll: true } },
      canPrint: true,
    })
}

参数说明
assetNameRegExp全局正则匹配需要压缩代码的文件类型
cssProcessor采用哪种方式压缩,这里是cssnano
cssProcessorOptions.discardComments这个配置是清除所有注释样式
canPrint表示插件能够在console中打印信息,默认值是true
cssProcessorOptions.safe避免 cssnano 重新计算 z-index
cssProcessorOptions.autoprefixercssnano 集成了autoprefixer的功能,关闭autoprefixer功能
注意cssProcessor是cssnano的配置,所以需要参考cssnano的配置

二、js压缩

配置完上面的css压缩后,悲剧的发现,js文件已经不压缩了,所以只能采用官方的压缩js的插件来重新给压缩一下
安装

npm install uglifyjs-webpack-plugin --save-dev

调用

const UglifyJSWebpackPlugin = require('uglifyjs-webpack-plugin')

配置
这个插件配置,跟上面的一样,在plugins里面调用,在optimization里面再次调用配置,这个配置还可以去除js里面的debugger,console等东西哦

new UglifyJsPlugin({
  uglifyOptions: {
    compress: {
      warnings: false,
      drop_debugger: true,  //去掉debugger
      drop_console: true,  // 去掉console
      pure_funcs: ['console.log']// 移除console
    }
  },
  sourceMap: config.build.productionSourceMap,
  parallel: true
})

这样配置完成后,发现js文件又开始已经压缩了
参数说明
compress.warnings警告
compress.drop_debugger是否清除debugger,默认false
compress.drop_console是否清除console,默认false
compress.pure_funcs是否移除console,数组里面配置要移除的内容
compress.dead_code清除没有有的代码
uglifyjs选项配置
uglifyjs原始配置

转载于:https://www.cnblogs.com/zjh-study/p/10863770.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值