webpack打包分析webpack-bundle-analyzer 打包文件分析工具
最近需要减少项目打包后的文件(bundle)的大小,那么首先需要了解bundle的构成。
目前我已知的方法有两种:
- 利用webpack-bundle-analyzer插件
- 利用webpack官方提供的分析功能
1.webpack-bundle-analyzer
安装插件webpack-bundle-analyzer:
npm i webpack-bundle-analyzer --save-dev
修改webpack.config.js
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
const config = {
...,
plugins:[
....,
new BundleAnalyzerPlugin(),
]
}
如果不想更改webpack.config.js,仅把分析作为特殊的形式可以采用如下做法:
新建anlyzer.js文件
const config = require("./webpack.config");
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
if(config.plugins){
config.plugins.push(new BundleAnalyzerPlugin());
}else{
config.plugins = [new BundleAnalyzerPlugin()];
}
module.exports = config;
然后在package.json中添加
"scripts": {
"anlyzer": "webpack-dev-server --config ./anlyzer.js",
},
后续想要启动分析的时候就可以用命令启动了:
npm run anlyzer
注:webpack-bundle-analyzer默认使用8888端口,插件npm地址。
2.webpack官方
webpack --profile --json > stats.json
会生成一个stats.json文件,然后进入到官方地址上传此文件就行。
http://webpack.github.io/analyse/
如果你的项目很大的话,使用此方法可能会有报错
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
解决方法:
"scripts": {
"uploadeStats": "node --max-old-space-size=4096 ./node_modules/webpack/bin/webpack.js --profile --json > stats.json"
},
然后利用命令启动就可以了:
npm run uploadeStats
注:node --max-old-space-size=4096不够的话可以自己修改更大的值

原文参考地址:https://zhuanlan.zhihu.com/p/85874124
webpack打包分析webpack-bundle-analyzer 打包文件分析工具的更多相关文章
- - Gradle 翻译 Analyzer APK文件分析 MD
目录 目录 APK文件分析 使用 APK 分析器分析您的编译版本 查看文件和大小信息 查看 AndroidManifest.xml 查看 DEX 文件 过滤DEX文件树视图 加载 Proguard 映 ...
- 构建-13 Analyzer APK文件分析
官方文档 使用APK Analyzer分析您的构建 [Analyze your build with APK Analyzer] Android Studio包含一个APK分析器,可在构建过程完成后 ...
- 简要分析webpack打包后代码
开门见山 1.打包单一模块 webpack.config.js module.exports = { entry:"./chunk1.js", output: { path: __ ...
- 分析 webpack 打包后的代码
写在前面的:使用的 webpack 版本 3.0.0 一.开始 1. 准备 当前只创建一个文件 index.js,该文件作为入口文件,代码如下. console.log('hello, world') ...
- webpac4k运行webpack .\src\main.js .\dist\bundle.js打包出错
打包的命令格式:webpack 要打包的文件的路径 打包好的输出文件的路径 运行webpack .\src\main.js .\dist\bundle.js 提示错误,错误信息如下: WARNING ...
- webpack快速入门——CSS进阶,Less文件的打包和分离
1.要使用less,首先使用npm安装less服务 cnpm install less --save-dev 还需要安装Less-loader用来打包使用. cnpm install less-loa ...
- webpack快速入门——CSS进阶:SASS文件的打包和分离
1.安裝:因为sass-loader依赖于node-sass,所以需要先安装node-sass cnpm install node-sass --save-dev cnpm install sass- ...
- webpack打包完成,复制,打包,移动,删除已生成的文件插件
const FileManagerPlugin = require('filemanager-webpack-plugin'); 详情请到 https://www.npmjs.com/ 一看究竟 贴个 ...
- 一、Electron + Webpack + Vue 搭建开发环境及打包安装
目录 Webpack + Vue 搭建开发环境及打包安装 ------- 打包渲染进程 Electron + Webpack 搭建开发环境及打包安装 ------- 打包主进程 Electron + ...
- Webpack入门——使用Webpack打包Angular项目的一个例子
2016.1.22,对大多数人来说,这是一个非常平常的日子,但这却是我决定在博客园写博客的日子.虽然注册博客园的博客已有4年8个月,却一直没有动手写过一篇博客,原因是觉得自己水平不行,写不出好东西,所 ...
随机推荐
- Postman中添加多个Cookie
在接口测试中,很多接口都是需要登录后才能获取到数据的.如何标识登录状态呢?有些app用token,有些app用Cookie.通过Fiddler抓包看到,我涯使用的是Cookie的方式,而且是有多个Co ...
- How to setup a Chia Harvester on Ubuntu
How to setup a Chia Harvester on Ubuntu Posted on May 4, 2021 A Chia Harvest is a computer that farm ...
- bsub opts
Options - IBM Documentation List of options for the bsub command. -aSpecifies one or more applicatio ...
- Linux FTP服务器配置文件vsftpd.conf 配置
配置文件/etc/vsftpd/vsftpd.conf local_enable=YES write_enable=YESlocal_umask=022dirmessage_en ...
- NOI 1.7编程基础之字符串
11:潜伏者 1.描述 R国和S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动. 历经艰险后,潜伏于S国的R国间谍小C终于摸清了S国军用密码的编码规则: 1. S国军方内部欲发送的原信 ...
- centos更改java的环境变量
vi /etc/profile 在最后添加这个信息,或修改这些信息 export JAVA_HOME=/usr/local/java/jdk1.8.0_251export CLASSPATH=.:$ ...
- 前后端API交互数据加密——AES与RSA混合加密完整实例(转载)
前言 前段时间看到一篇文章讲如何保证API调用时数据的安全性(传送门:https://blog.csdn.net/ityouknow/article/details/80603617),文中讲到利用R ...
- Java 接口内容小结
Java接口学习:https://www.cnblogs.com/mlllily/p/14923837.html 小结内容: 在Java9+版本中,接口内容可以有常量.抽象方法.默认方法.静态方法.私 ...
- IDEA通过Spring Initalizr新建SSM (2)
之前的方式是通过官网初始化demo(URL:https://start.spring.io/)现在记录一下通过IDEA自带的初始化器新建SSM框架 1.打开IDEA,点击新建,出现如下图菜单,点击Sp ...
- mongodb对Obeject对象进行增删改操作
1.插入某个对象,如User对象 mongoTemplate.insert(user, "users");//第一个参数是实体类对象User, 第二个参数是mongodb对应的集合 ...