返回顶部
首页 > 资讯 > 前端开发 > JavaScript >webpack-bundle-analyzer 插件配置使用方法
  • 179
分享到

webpack-bundle-analyzer 插件配置使用方法

webpack-bundle-analyzer 插件webpack-bundle-analyzer 配置 2023-02-07 12:02:27 179人浏览 独家记忆
摘要

目录一、webpack-bundle-analyzer 是什么?二、安装三、使用方法1. 作为插件使用2. 作为CLI的一个工具参考文章:一、WEBpack-bundle-analy

一、WEBpack-bundle-analyzer 是什么?

webpack-bundle-analyzer 是 webpack 的插件,需要配合 webpack 和 webpack-cli 一起使用。这个插件可以读取输出文件夹(通常是 dist)中的 stats.JSON 文件,把该文件可视化展现,生成代码分析报告,可以直观地分析打包出的文件有哪些,及它们的大小、占比情况、各文件 Gzipped 后的大小、模块包含关系、依赖项等,对应做出优化,从而帮助提升代码质量和网站性能。

二、安装

# NPM 
npm install --save-dev webpack-bundle-analyzer
# Yarn 
yarn add -D webpack-bundle-analyzer

三、使用方法

1. 作为插件使用

1. 配置 webpack.config.js 文件:

// webpack.config.js 文件
 
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
module.exports={
  plugins: [
    new BundleAnalyzerPlugin()  // 使用默认配置
    // 默认配置的具体配置项
    // new BundleAnalyzerPlugin({
    //   analyzerMode: 'server',
    //   analyzerHost: '127.0.0.1',
    //   analyzerPort: '8888',
    //   reportFilename: 'report.html',
    //   defaultSizes: 'parsed',
    //   openAnalyzer: true,
    //   generateStatsFile: false,
    //   statsFilename: 'stats.json',
    //   statsOptions: null,
    //   excludeAssets: null,
    //   logLevel: info
    // })
  ]
}

2. 配置 package.json 文件

{
 "scripts": {
    "dev": "webpack --config webpack.dev.js --progress"
  }
}

3. 在命令行工具中输入

npm run dev

按回车。此时会打开浏览器,你将看到项目资源包的交互式可视化树形分析图。

图中占面积越大的文件,其文件的大小越大,部署到服务器之后,在浏览器中加载的时间越长,点击左上角的像箭头一样的符号可以直接查看各个文件的大小。

该分析图可以帮助我们:

  • 了解 bundle 包中的真正内容
  • 找出哪些模块尺寸最大
  • 查找误引入的模块
  • 优化项目

最棒的是它支持缩小的 bundle 文件,它解析它们以获得 bundle 文件模块的实际大小,还显示了它们的压缩大小。

得到可视化的分析结果之后,接下来就对占比比较大或者依赖程度比较高的文件进行优化了。

4. 参数配置

new BundleAnalyzerPlugin(options?: object)

名称类型描述
analyzerModeserver / static / json / disabled默认值:server。 在server 模式下,分析器将启动 Http 服务器以显示 bundle 报告。 在 static 模式下,将生成带有 bundle 报告的单个 HTML 文件。 在 json 模式下,将生成带有捆绑报告的单个 JSON 文件。 在 disable 模式下,您可以使用此插件通过将 generateStatsFile 设置为 true 来生成 Webpack Stats JSON 文件。
analyzerHost{ String }默认值:127.0.0.1。 在 server 模式下用于启动 HTTP 服务器的主机。
analyzerPort{ Number }或者 auto默认值:8888。在 server 模式下用于启动 HTTP 服务器的端口
reportFilename{String}默认值:report.html。 在 static 模式下生成的捆绑报告文件的路径。 它可以是绝对路径,也可以是相对于 bundle 文件输出目录的路径(在 webpack 配置中是 output.path)。
reportTitle{ String | function }默认值:返回打印当前日期和时间的函数。 HTML 的 title 元素的内容; 或获取该内容的 () => string 形式的函数。
defaultSizesstat / parsed / gzip

默认值:parsed。 默认情况下在报告中显示的模块大小。

stat:这是文件的“输入”大小,在进行任何转换(如缩小)之前。之所以称为“stat size”,是因为它是从 Webpack 的 stats 对象中获取的。

parsed:这是文件的“输出”大小。 如果你使用的是 Uglify 之类的 Webpack 插件,那么这个值将反映代码的缩小后的大小。

gzip:这是通过 gzip 压缩运行解析的包/模块的大小。

openAnalyzer{ Boolean }默认值:true。 在默认浏览器中自动打开报告。
genarateStatsFile{ Boolean }默认值:false。 如果为 true,将在 bundle 输出目录中生成 webpack stats JSON 文件
statsFilename{ String }默认值:stats.json。 如果 generateStatsFile 为 true,表示将生成的 webpack stats JSON 文件的名称。 它可以是绝对路径,也可以是相对于bundle文件输出目录的路径(在 webpack 配置中是 output.path)。
statsOptionsnull 或 { Object }默认值:null。 stats.toJson() 方法的选项。 例如,您可以使用 source: false 选项从统计文件中排除模块的源代码。
excludeAssets

{ null | pattern | pattern[] }

其中 pattern 可以是

{ String | RegExp | function }

默认值:null。 用于匹配将从报告中排除的资源名称的模式。 如果 pattern 是一个字符串,它将通过 new RegExp(str) 转换为 RegExp。 如果 pattern 是一个函数,它应该具有以下签名 (assetName: string) => boolean 并且应该返回 true 以排除匹配的资源。 如果提供了多个模式,资源应至少匹配其中一个以被排除。
logLevelinfo / warn / error / silent默认值:info。 用于控制插件输出多少细节。

优点:简单
缺点:每次运行打包命令时,都在本地起一个端口号为8888的本地服务器,并自动在浏览器中展示项目的分析结果。不够灵活,并不是每次构建都想看代码分析!

2. 作为CLI的一个工具

如果你有一个 webpack stats JSON 文件,你可以分析一个现有的包。

1、配置 webpack.config.js 文件:

可以使用 BundleAnalyzerPlugin 将 generateStatsFile 选项设置为 true

// webpack.config.js 文件
 
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
module.exports={
  plugins: [
    new BundleAnalyzerPlugin({
      analyzerMode: 'disabled', // 不启动展示打包报告的http服务器
      generateStatsFile: true, // 是否生成stats.json文件
    }),
  ]
}

2、配置 package.json 文件

{
 "scripts": {
    "generateAnalyzFile": "webpack --profile --json > stats.json", // 生成分析文件
    "analyz": "webpack-bundle-analyzer --port 8888 ./dist/stats.json" // 启动展示打包报告的http服务器
  }
}

 3、在命令行工具中,先运行 npm run generateAnalyzFile 命令,然后运行 npm run analyz 命令。此时就可以看到分析结果了。

优点:稍微复杂,但是灵活
缺点:每次运行命令时,都会在 dist 目录下生成一个 stats.json 文件。这个问题,可以将 generateStatsFile 属性设置为 false,但是这样就无法生成 stats.json 文件了。解决办法:需要查看分析报告的时候设置为 true,其余时候设置为 false。

参考文章:

webpack-bundle-analyzer - npm (npmjs.com)

webpack-bundle-analyzer插件快速入门 - 简书 (jianshu.com)

到此这篇关于webpack-bundle-analyzer 插件配置的文章就介绍到这了,更多相关webpack-bundle-analyzer 插件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: webpack-bundle-analyzer 插件配置使用方法

本文链接: https://lsjlt.com/news/194425.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • webpack-bundle-analyzer 插件配置使用方法
    目录一、webpack-bundle-analyzer 是什么?二、安装三、使用方法1. 作为插件使用2. 作为CLI的一个工具参考文章:一、webpack-bundle-analy...
    99+
    2023-02-07
    webpack-bundle-analyzer 插件 webpack-bundle-analyzer 配置
  • webpack如何实现jquery插件的环境配置
    这篇文章将为大家详细讲解有关webpack如何实现jquery插件的环境配置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。客户需求要一个具备树结构、带复选框的下拉选择控件...
    99+
    2024-04-02
  • webpack中的代理配置方法
    这篇文章主要介绍了webpack中的代理配置方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇webpack中的代理配置方法文章都会有所收获,下面我们一起来看看吧。作用:解决开发环境跨域问题(不用再去配置ngi...
    99+
    2023-07-02
  • 基于webpack实用配置方法有哪些
    小编给大家分享一下基于webpack实用配置方法有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、webpack.config.js配置文件为://处理共用、通用的js var&nb...
    99+
    2024-04-02
  • webpack配置文件和常用配置项介绍
    1、安装webpack 1.全局安装webpack:npm install webpack -g 或者转化了cnpm则将npm改为cnpm进行安装 2.进行初始化建立package.json文件记录插件,命...
    99+
    2022-06-04
    配置文件 常用 webpack
  • Webpack常见使用配置小结
    目录1. 简介2. 上手准备3. 安装3. 编写案列随着前端开发越来越复杂,那么我们需要做的功能也不止基本界面了, 比如开发过程中我们需要通过模块化的方式来开发;比如也会使用一些高级...
    99+
    2024-04-02
  • Mybatis分页插件PageHelper的配置和简单使用方法(推荐)
    前言在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页。前端分页一次性请求数据表格中的所有记录(ajax),然后在前端缓存并且计算count和分页逻辑,一般前端组件(例...
    99+
    2023-05-30
    mybatis 分页插件 pagehelper
  • maven:Maven Helper插件使用方法
    引言  maven Helper是排查jar包冲突的一大利器,jar包冲突大部分是由于引用了同一个jar的不同版本而导致的。  maven Helper就是一个将pom.xml图形化界面的一个插件(总...
    99+
    2023-09-17
    maven java 开发语言
  • webpack-dev-server中如何配置使用
    这篇文章给大家分享的是有关webpack-dev-server中如何配置使用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1安装的WebPack-dev-server 在终端输入...
    99+
    2024-04-02
  • Jenkins初级应用Publish Over SSH插件配置的方法
    这篇文章主要介绍“Jenkins初级应用Publish Over SSH插件配置的方法”,在日常操作中,相信很多人在Jenkins初级应用Publish Over SSH插件配置的方法问题上存在疑惑,...
    99+
    2023-06-29
  • MyBatis-Plus分页插件的配置与使用
    MyBatis-Plus分页插件的配置与使用 1. 分页插件的配置1.1 MyBatis-Plus依赖配置1.2 MyBatis-Plus分页插件配置 2. 分页插件的使用2.1 理论分析2.1 代码实现 1. 分页插件...
    99+
    2023-08-17
    mybatis java mysql spring boot sql
  • Dockerfile Maven 插件的使用方法
    本篇内容介绍了“Dockerfile Maven 插件的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Dockerfile Mave...
    99+
    2023-06-19
  • 浅析Vue中插槽和配置代理的使用方法
    如何正确快速使用Vue中的插槽和配置代理?下面本篇文章给大家介绍一下Vue中插槽和配置代理的使用方法,希望对大家有所帮助!一,插槽1.什么是插槽让父组件可以向子组件指定位置插入html结构,也是一种组件间通信的方式,适用于父组件——>...
    99+
    2023-05-14
    配置代理 Vue 插槽
  • webpack安装配置及使用教程详解
    目录一、webpack介绍1、由来2、介绍3、作用4、拓展说明5、webpack整体认知二、webpack安装1、安装node2、安装cnpm3、安装nrm的两种方法4、安装webp...
    99+
    2024-04-02
  • 使用SpringBootMaven插件的详细方法
    目录Maven继承starter parent使用没有父POM的Spring Boot改变Java版本使用Spring Boot Maven插件Maven Maven用户可以继承sp...
    99+
    2023-05-19
    Spring Boot Maven插件 Spring Boot Maven使用
  • 解决Redis Object Cache Pro插件无法使用高性能配置的解决方案
    说明 辉哥演示站和本地使用的对象缓存都是redis,刚好手上有Redis Object Cache Pro插件,目前大多数用户都是用的是官方推荐的基础配置,并没有使用高性能配置(官方的说法是在毫秒内优化高流量站点),刚好辉哥今天研究了一下该...
    99+
    2023-09-03
    php 数据库 redis
  • Spring Boot 中PageHelper 插件使用配置思路详解
    使用思路 1.引入myabtis和pagehelper依赖 2.yml中配置mybatis扫描和实体类 这2行代码 pageNum:当前第几页 pageSize:显示多少条数据 u...
    99+
    2024-04-02
  • react项目中如何使用插件配置路由
    本篇内容介绍了“react项目中如何使用插件配置路由”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!react路由中没有安全守卫推荐使用插件完...
    99+
    2023-07-05
  • Go语言中配置文件使用与日志配置的方法
    本文小编为大家详细介绍“Go语言中配置文件使用与日志配置的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“Go语言中配置文件使用与日志配置的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。项目结构调整说先对...
    99+
    2023-06-30
  • SpringCloud Config使用配置方法
    Config 介绍 Spring Cloud Config项目是一个解决分布式系统的配置管理方案。它包含了Client和Server两个部分,server提供配置文件的存储、以接口...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作