浅谈webpack4.0 性能优化

 前言:在现实项目中,我们可能很少需要从头开始去配置一个webpack 项目,特别是webpack4.0发布以后,零配置启动一个项目成为一种标配。正因为零配置的webpack对项目本身提供的“打包”和“压缩”功能已经做了优化,所以实际应用中,我们可以把精力更多专注在业务层面上,而无需分心于项目构建上的优化。然而从学习者的角度,我们需要了解webpack在项目的构建和打包压缩过程中做了哪些的优化,以及在原有默认配置上,还可以做哪些性能方面上的改进。

       最近在完成vue的单页面应用后萌生了一个想法,抛弃掉vue-cli的构建配置,从零开始进行webpack优化,并将过程中的思路和体会分享在这篇文章中。webpack的初始配置在我之前写的另一篇
但是接下来,我们需要将css代码独立开来,为什么呢?最主要的一点是我们希望更好的利用浏览器的缓存,当单独修改了样式时,独立的css文件可以不需要应用去加载整个的脚本文件,提高效率。并且,当遇到多页面的应用时,可以单独将一些公共部分的样式抽离开来,加载一个页面后,接下来的页面同样可以利用缓存来减少请求。

webpack4.0 中提供了抽离css文件的插件,mini-css-extract-plugin,只需要简单的配置便可以将css文件分离开来

const MiniCssExtractPlugin = require('mini-css-extract-plugin')  module.exports = {     ···     plugins: [         new MiniCssExtractPlugin({             filename: "[name].[contenthash].css",             chunkFilename: "[name].[contenthash].css"         })     ],     module: {         rules: {             test: /\.(css|scss)$/,             use: [process.env.NODE_ENV == 'production' ? MiniCssExtractPlugin.loader : 'style-loader', {               loader: 'css-loader',               options: {                 sourceMap: true               },             }, "sass-loader"]         }     }     ··· }
分离后

在这里插入图片描述

3.3 压缩js, html, css 文件

要想优化构建后的体积,不断减少静态资源文件的大小,我们希望webpack帮助我们尽可能压缩文件的体积。对于js 脚本文件而言,webpack4.0 在mode 为‘production’时,默认会启动代码的压缩。除此之外,我们需要手动对html和css 进行压缩。

       针对html 的压缩,只需要对
html-webpack-plugin进行相关配置。

// webpack.base.js   module.exports = {     plugins: [         new HtmlWebpackPlugin({           title: 'minHTML',           filename: 'index.html',           template: path.resolve(__dirname, '../index.html'),           minify: { // 压缩 HTML 的配置             collapseWhitespace: true,             removeComments: true,             useShortDoctype: true           }         }),     ] } 

       针对css 的压缩, webpack4.0 使用optimize-css-assets-webpack-plugin来压缩单独的css 文件。

const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");  module.exports = {     plugins: [         new OptimizeCSSAssetsPlugin()     ], }

在这里插入图片描述
在这里插入图片描述
对比之下,我们可以看到明显的效果,关于压缩css 更多的配置可以参考
在这里插入图片描述

关键字:

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信