码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • webpack5 之 优化效率工具 ( 进度条、速度分析 、打包后提交分析)


    目录

    • 1:webpack5 之 优化效率工具 进度条
      • 方式1
        • package.json
        • webpack.base.js
        • 效果
      • 方式2与3 ( 推荐 方式2 )
        • package.json
        • webpack.base.js
        • 效果
    • 2:webpack5 之 优化效率工具 速度分析
      • package.json
      • webpack.dev.js
      • npm run dev 效果
    • 3:webpack5 之 优化效率工具 打包后提交分析
      • package.json
      • webpack.pro.js
      • 打包后体积分析 ( npm run build效果 自动开启一个网站 )

    1:webpack5 之 优化效率工具 进度条

    方式1

    package.json

      "devDependencies": {
        "progress-bar-webpack-plugin": "^2.1.0"
      },
    
    • 1
    • 2
    • 3

    webpack.base.js

    const path = require('path')
    // 进度条
    const ProgressBarPlugin = require('progress-bar-webpack-plugin')
    module.exports = {
      entry: {
        main: './src/main.js'
      },
      output: {
        publicPath: '',
        path: path.resolve(__dirname, '../dist'),
        filename: 'js/[name]_[contenthash:6].js',
      },
      plugins: [
        // 进度条
        new ProgressBarPlugin()
      ]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    效果

    在这里插入图片描述

    方式2与3 ( 推荐 方式2 )

    package.json

      "devDependencies": {
        "webpackbar": "^5.0.2"
      },
    
    • 1
    • 2
    • 3

    webpack.base.js

    const path = require('path')
    
    // 进度条 方式1
    // const ProgressBarPlugin = require('progress-bar-webpack-plugin')
    // 方式2
    // const {
    //   ProgressPlugin
    // } = require("webpack")
    // 方式3
    const WebpackBar = require('webpackbar');
    
    module.exports = {
      entry: {
        main: './src/main.js'
      },
      output: {
        publicPath: '',
        path: path.resolve(__dirname, '../dist'),
        filename: 'js/[name]_[contenthash:6].js',
      },
      plugins: [
        // 进度条 方式1
        // new ProgressBarPlugin()
        // 方式2
        // new ProgressPlugin({
        //   activeModules: true, // 默认false,显示活动模块计数和一个活动模块正在进行消息。
        //   entries: true, // 默认true,显示正在进行的条目计数消息。
        //   modules: false, // 默认true,显示正在进行的模块计数消息。
        //   modulesCount: 5000, // 默认5000,开始时的最小模块数。PS:modules启用属性时生效。
        //   profile: false, // 默认false,告诉ProgressPlugin为进度步骤收集配置文件数据。
        //   dependencies: false, // 默认true,显示正在进行的依赖项计数消息。
        //   dependenciesCount: 10000, // 默认10000,开始时的最小依赖项计数。PS:dependencies启用属性时生效。
        // })
        // 方式3
        new WebpackBar({
          // color: "#85d", // 默认green,进度条颜色支持HEX
          basic: false, // 默认true,启用一个简单的日志报告器
          profile: false, // 默认false,启用探查器。
        })
      ]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    效果

    • 方式2
      在这里插入图片描述
      在这里插入图片描述

    2:webpack5 之 优化效率工具 速度分析

    package.json

      "devDependencies": {
        "speed-measure-webpack-plugin": "^1.5.0"
      },
    
    • 1
    • 2
    • 3

    webpack.dev.js

    const merge = require('webpack-merge')
    const baseConfig = require('./webpack.base');
    // 编译速度分析
    const SpeedMeasurePlugin = require("speed-measure-webpack-plugin");
    const smp = new SpeedMeasurePlugin();
    const devPlugingConfig = smp.wrap({
    
    })
    const devConfig = {
      mode: 'development',
      devtool: 'eval-cheap-module-source-map', //开发环境配置 定位错误根源
      // dev缓存
      cache: {
        type: 'memory'
      },
      devServer: {
        port: '3001', // 默认是 8080
        hot: true,
        compress: true, // 是否启用 gzip 压缩
        proxy: {
          '/api': {
            target: 'http://0.0.0.0:80',
            pathRewrite: {
              '/api': '',
            },
          },
        },
      }
    }
    module.exports = merge(baseConfig, devConfig, devPlugingConfig)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    npm run dev 效果

    在这里插入图片描述
    在这里插入图片描述

    3:webpack5 之 优化效率工具 打包后提交分析

    package.json

      "devDependencies": {
        "webpack-bundle-analyzer": "^4.6.1"
      },
    
    • 1
    • 2
    • 3

    webpack.pro.js

    const path = require('path')
    const merge = require('webpack-merge');
    const baseConfig = require('./webpack.base');
    const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; // 打包后 体积分析
    
    const proConfig = {
      mode: 'production',
      devtool: 'hidden-source-map',
      cache: {
        type: 'filesystem',
        buildDependencies: {
          config: [__filename]
        }
      },
      plugins: [
        // 打包体积分析
        new BundleAnalyzerPlugin()
      ]
    
    }
    
    module.exports = merge(baseConfig, proConfig)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    打包后体积分析 ( npm run build效果 自动开启一个网站 )

    在这里插入图片描述

  • 相关阅读:
    市面上最适合跑步用的耳机有哪些、分享五款最优秀的跑步耳机
    如何在Java中实现LRU缓存
    Linux的目录结构(介绍主要的)
    java计算机毕业设计综合测评系统源码+数据库+系统+lw文档+mybatis+运行部署
    Docker学习
    学习 XQuery:XML数据查询的关键
    ansible下使用blockinfile添加配置信息到xml
    【大数据处理技术】第二篇 大数据存储与管理(持续更新)
    编写一个人民币与输入币种的兑换程序,根据用户输入的币种、汇率和待兑换人民币数量,实现人民币到其他币种的兑换。
    【STL】容器与适配器(10)
  • 原文地址:https://blog.csdn.net/weixin_43845137/article/details/126660905
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号