WebPack优化

开启 prodution 模式之后,就会自动开启 Tree-Shaking没有用到的代码,在生产打包的时候删掉就是 tree-shaking这里的 mult 函数就是没用到的代码,在生产打包时应该删掉把多个函数(每个模块可能一个函数)的内容,放到一个函数中代码体积更小创建函数作用域更少代码可读性更好。
摘要由CSDN通过智能技术生成

目录

1 常用的loader和plugin

2 WebPack多入口配置:

3 如何抽离压缩css文件

4 webpack如何抽离公共代码和第三方代码

 5 webpack如何实现异步加载JS (懒加载)

6  module chunk bundle 的区别

7  webpack优化构建速度

hard-source-webpack-plugin

8 webpack 优化产出代码

9 什么是Tree-Shaking

10 ES6 Module和 Commonjs区别

11什么是 Scope Hosting?

12 babel 

Polyfill

分割线

Webpack构建速度优化

1  缩小范围

2 noParse

3 IgnorePlugin

 4 优化 resolve 配置

alias


1 常用的loader和plugin

1.    file-loader加载文件,url-loader也可以加载文件但是当文件小于阙值转为base64返回,url-loader封装了file-loader

  1. css-loader处理css文件、style-loader将css代码以style标签注入到html文件中,less-loader转less文件为css文件

  2. postCss-loader转换css文件,例如添加前缀,转换单位

  3. babel-loader转es6为es5,转换react语法

  4. vue-loader处理vue文件

  5. eslint-loader检查代码规范

  6. devServer 配置服务器webpack-dev-server开发环境静态服务器(属性host、port、proxy、contentbase根目录)

  7. devtool配置sourcemap类型

2 WebPack多入口配置:

  1. entry需要多入口配置,{chunkname: filePath/file.js}

2 out需要动态配置[name].hash.js

3 htmlwebpackplugin需要生成多个html(属性template,fimename,chunks),配置html要引入的chunks

如何抽离压缩css文件

在本地的代码中可以用style-loader把CSS文件放到style中,
但是线上必须要把CSS进行抽离,压缩,不然代码体积很大。

不抽离的CSS文件其实是通过js文件写入html的style标签中的 ,这样要执行js才能把css解析出来放入html中,效率很低。

抽离 css 和 less :
注意这里不再使用style-loader,而是使用 MiniCssExtractPlugin.loader 单独拎出来

1. 抽离:使用miniCssExtratPlugin插件,rules中使用miniCssExtratPlugin.loader替换style-loader,plugin中配置MiniCssExtratPlugin

2. 压缩:在webpack optimization属性中配置minmizer,使用optimizeCssAssetsPlugin等工具压缩css文件去除空格和注释

webpack5现在一般要使用CssMinimizerPlugin + MiniCssExtractPlugin,之前的optimize-css-assets-webpack-plugin会报错

const path = require("path");
const {merge} = require("webpack-merge");
const common = require("./webpack.common");
const {CleanWebpackPlugin} = require("clean-webpack-plugin");
const {distPath, srcPath} = require("./path");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");

module.exports = merge(common, {
    mode: "production",
    module: {
        rules: [
            {
                test: /\.css$/,
                include: srcPath,
                exclude: /node_modules/,
                use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader']
            },
            {
                test: /\.less$/,
                include: srcPath,
                exclude: /node_modules/,
                use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader', 'less-loader']
            }
        ]
    },
    output:{
        path:distPath,
        filename:'bundle.[contenthash:8].js'
    },
    plugins: [
        new CleanWebpackPlugin(),
        new MiniCssExtractPlugin({
            filename:'main.[contenthash:8].css'
        })
    ],
    optimization:{
        minimizer:[
            new CssMinimizerPlugin()
        ]
    }
})

4 webpack如何抽离公共代码和第三方代码

对应 html 中引入哪些 js 可以在 HtmlWebpackPlugin 中的 chunks 中 配置

在生产的配置中进行公共代码和第三方代码的抽离:
在 optimization 中加 splitChunks

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
webpack 是一个非常强大的前端打包工具,但是在项目逐渐复杂的情况下,构建速度和打包输出的体积很容易成为瓶颈。以下是一些 webpack 优化的方法: 1. 使用高版本的 webpack:每个版本的 webpack 性能都会有所提升,升级到最新版本是一个很不错的优化方案。 2. 使用 webpack-bundle-analyzer:该插件可以帮助你分析打包出来的代码大小和依赖关系,从而更好地优化代码。 3. 使用 DllPlugin 和 DllReferencePlugin:这两个插件可以将一些基础库(如 React、Vue 等)分离出来,从而减少每次打包的时间。 4. 开启多进程/多实例构建:使用 webpack-parallel-uglify-plugin 或 thread-loader 插件,可以让 webpack 开启多个进程或者多个实例来处理任务,从而提升构建速度。 5. 使用 Tree Shaking:Tree Shaking 是一个很强大的工具,可以帮助我们删除掉不需要的代码,减小打包后的文件大小。 6. 合理使用缓存:使用 cache-loader 或者 hard-source-webpack-plugin 插件可以让 webpack 更好地利用缓存,从而提升构建速度。 7. 使用 code splitting:使用 webpack 的 code splitting 功能,可以让我们将代码分成多个块,从而提升加载速度和并行加载能力。 8. 按需加载:按需加载可以让我们只加载需要的代码,减少不必要的网络请求和加载时间。 以上是一些常见的 webpack 优化方法,当然还有很多其他的方法,具体要根据项目的实际情况进行优化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值