加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

性能优化篇---Webpack构建代码质量压缩

发布时间:2019-03-27 13:33:03 所属栏目:建站 来源:keywords
导读:Webpack构建速率优化根基优化完毕,接下来思量的就是:线上代码质量的优化,即怎样行使webpack构建出高质量的代码 Webpack构建流程:初始化设置参数 - 绑定变乱钩子回调 - 确定Entry一一遍历 - 行使loader编译文件 - 输出文件 提要 本次优化构建代码质量基

三、压缩文件jscss

  •  行使npm i -D webpack-parallel-uglify-plugin启用多线程并行压缩JS 
  1. optimization: {  
  2.     minimizer: [  
  3.         new ParallelUglifyPlugin({  
  4.             cacheDir: '.cache/', //缓存压缩,默认不缓存,配置存放位置开启  
  5.             test: /.js$/, //匹配必要压缩的文件,默以为/.js$/和Loader设置一样  
  6.             //include: [], 行使正则去选择必要被压缩的文件和Loader设置一样  
  7.             //exclude: [], 行使正则去去除不必要被压缩的文件和Loader设置一样  
  8.             //workerCount: 2, 开启几个子历程并发执行压缩  
  9.             // sourceMap: false, 是否输出source Map,开启会导致压缩变慢  
  10.             // uglifyJS: {}, 用于压缩ES6代码不行和uglifyJS同时行使  
  11.             uglifyJS:{//压缩ES5代码  
  12.                 output: {  
  13.                     // 是否输出可读性较强的代码,即会保存空格和制表符,默以为输出,为了到达更好的压缩结果,可以配置为false  
  14.                     beautify: false,  
  15.                     //是否保存代码中的注释,默以为保存,为了到达更好的压缩结果,可以配置为false  
  16.                     comments: false  
  17.                 },  
  18.                 compress: {  
  19.                     //是否在UglifyJS删除没有效到的代码时输出告诫信息,默以为输出  
  20.                     warnings: false,  
  21.                     //是否删除代码中全部的console语句,默以为不删除,开启后,会删除全部的console语句  
  22.                     drop_console: true,  
  23.                     //是否内嵌固然已经界说了,可是只用到一次的变量,好比将 var x = 1; y = x, 转换成 y = 1, 默以为否  
  24.                     collapse_vars: true,  
  25.                     // 提取呈现多次可是没有界说成变量去引用的静态值  
  26.                     reduce_vars:true  
  27.                 }  
  28.             },  
  29.         }),  
  30.     ]  
  31. }, 
  •  提取和压缩Css

        1.行使插件:optimize-css-assets-webpack-plugin、mini-css-extract-plugin

        2.行使示例:

  1. // 提取css到单独的文件  
  2. const MiniCssExtractPlugin = require("mini-css-extract-plugin");  
  3. // optimizeCssPlugin CSS文件压缩插件  
  4. const optimizeCssPlugin = require('optimize-css-assets-webpack-plugin');  
  5. const extractSCSS = new MiniCssExtractPlugin({  
  6.     filename: 'css/[name].[contenthash:8].css',  
  7.     chunkFilename: 'css/[name]_[contenthash:8].css',  
  8.     fallback:'style-loader'  
  9. });  
  10. ...  
  11. ...  
  12. plugins: [  
  13.     new optimizeCssPlugin({  
  14.         assetNameRegExp: /.css$/g,  
  15.         cssProcessor: require('cssnano'),  
  16.         cssProcessorOptions: { discardComments: { removeAll: true } },  
  17.         canPrint: true  
  18.     }),  

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读