webpack4.0让编译速度飙升
前端开发一个crm项目的时候,因为项目内容比较庞大,导致webpack编译和打包都巨慢,实在是影响开发效率,所以着手升级webpack。
webpack4-es6-react
webpack4-es6-react是一个全新的基于webpack4、react16、es6、antd-mobile的前端架构实现方案,默认是antd-mobile,也可以自定义配置ui框架如:antd
功能
- 编译速度快(使用happypack插件实现多线程执行任务)
- 按需加载(不同页面文件单独压缩)
- hash指纹(js、css文件自动添加版本号)
- es2015
- 支持less、stylus
- 图片体积小支持base64压缩
- 支持svg解析
- 支持自定义打包文件的目录
- 支持热更新
- 支持打包输出map文件
- 支持打包压缩文件
使用版本
- webpack 4.7.0
- react 16.4.0
- react-dom 16.4.0
目录结构
.
├── webpack.config --------------------- webpack相关配置
├── package.json --------------------- 项目配置
├── README.md ------------------------ 说明文件
└── src ------------------------------ 源码目录├── index -------------------------- 入口文件├── index.html -------------------------- html入口文件├── components ------------------- 业务模块集合目录├── images ----------------------- 图片资源目录└── pages ------------------------ 页面集合目录└── App --------------------- 某一个页面├── App.js ------------- 页面入口文件└── App.css -------- 页面样式
克隆
git clone https://github.com/NewPrototype/webpack4-es6-react.git
安装依赖
npm install
编译
npm run start (开发模式)
默认浏览器会自动打开 http://localhost:9999
,编译完成
打包
npm run build (生产模式)
package.json
package.json- script 参数解析
- --open 打开浏览器
- --color webpack输出信息颜色
- --hot 热更新
- --inline 热更新的方式
- --mode development(开发模式) || production (生产模式)
- --profile webpack 运行信息
webpack.config.js
const { argv } = process;
let env = 'development'; //默认是开发模式
argv.forEach(v => {if (v == 'production') {env = 'production';}
});
开发模式
- 无需map文件
- 无需压缩css,js
- 启动多线程执行编译任务
生产模式
- 生成map
- 压缩文件
- 自动添加hash版本号(解决缓存问题)
速度
编译从76460ms提升到14830ms
Hash: 7e97185183a8397d60dc Version: webpack 4.12.0 Time: 14830ms Built at: 2018-06-11 11:20:01
热更新速度从2.5秒到1秒左右
Hash: df56e41b7815ca326b9e Version: webpack 4.12.0 Time: 758ms Built at: 2018-06-12 15:27:47
todoList
- 按需加载路由
- 输出 webpack编译json,分析编译时间
- 支持多入口
- react-redux一键生成模版
- 支持axios
- 提高webpack编译速度(一直在持续...)
gitHub
https://github.com/NewPrototy...
webpack4.0让编译速度飙升相关推荐
- 慢腾腾的Quartus prime16.0加快编译速度
前言 当一个工程反复修改的时候,可能有时候源代码没有更改,为了加快编译速度可以配置quartus一些选项.当然,初次编译的速度是否会提升,未验证.更高级的设计分区以及逻辑锁区提升速度,以后阐述. 流程 ...
- linux 编译opencv 慢,opencv4.0 cuda10 编译速度太慢
图论$\cdot$最短路问题 Dijkstra单源最短路径算法 Dijkstra可以计算出发点到每个点的最短路,及单源最短路径(SSSP).这一特点使得Dijkstra常常用来进行其他算法的预处理.用 ...
- Ninja提升编译速度的方法-Android10.0编译系统(十)
摘要:如何通过Ninja来提升Android编译速度 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢 ...
- Next.js 7.0正式发布:重新编译速度提高42%,支持WebAssembly
在经过26次金丝雀发布和340万次下载之后,现在,我们正式推出生产就绪的Next.js 7. \\ DX改进:启动速度提高57%,重新编译速度提高42%:\\t 使用react-error-overl ...
- webpack4.0打包优化策略(二)
打包优化策略 webpack4.0打包优化策略(一) webpack4.0打包优化策略(二) webpack4.0打包优化策略(三) 区分开发和生产环境 通常我们在开发网页时需要区分构建环境 开发环境 ...
- webpack4.0各个击破(4)—— Javascript splitChunk
[摘要] webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点 ...
- iOS - Xcode提高编译速度,增量编译,ccache
前言 贝聊目前开发的两款App分别是贝聊家长版和贝聊老师版,最近因为在快速迭代开发新功能,项目规模急速增长,单个端业务代码约23万行,私有库约6万行,第三方库代码约15万行,单个客户端的代码行数约60 ...
- [贝聊科技]如何将 iOS 项目的编译速度提高5倍
前言 贝聊目前开发的两款App分别是贝聊家长版和贝聊老师版,最近因为在快速迭代开发新功能,项目规模急速增长,单个端业务代码约23万行,私有库约6万行,第三方库代码约15万行,单个客户端的代码行数约60 ...
- 利用Injection插件加快Xcode编译速度
我们在调试iOS原生代码时,每次修改都需要Command+R来重新编译运行.当项目代码量很大,编译时间就会很漫长.因此对于开发中来说,如果能加快编译速度,能大大提高生产效率.如果我们能像Swift P ...
最新文章
- 英特尔变身数据公司 未来最大数据市场定是中国
- 005_html文档类型
- 计算机技术应用体验,信息技术应用体验学习心得体会
- 开源CMS webEdition 6发布
- 舞伴配对问题java_舞伴配对问题
- SQL2005的配置
- 【华为云技术分享】基于Atlas 200 DK的原版YOLOv3(基于Darknet-53)实现(Python版本)
- 因涉嫌信披违规 神州优车被证监会立案调查
- Windows 底层驱动级 Anti-Rootkit 工具 ScDetective 源代码
- tomcat7 安装和环境变量配置
- Word2003中Visio2003图打印错误的解决方法
- hexo文章中插入图片
- ROMS海洋模式笔记
- 新晋流量操盘手(一行) 探索百度贴吧高阶引流玩法
- 心不动——王阳明最可怕之处
- [最小割最大流 || 最短路] roadblock Dinic SPFA + SLE
- EXCEL通过IF与COUNTIF嵌套解决多条件筛选需要注意的问题
- magent java_bt种子简介与magnet磁力介绍
- 小白java环境变量配置
- 移动端最常用的四个框架
热门文章
- 从蜘蛛网到物联网 这张网人类织了多久?
- Visual Studio2005的加载此属性页时出错的解决办法(转)
- 使用JCIFS获取远程共享文件
- android 开发 获取各种intent (图片、apk文件、excel、pdf等文件)
- Java Swing 皮肤
- Exchange server 2010系列教程之一 安装Exchange 2010准备条件
- asp.net 包含动态创建控件的容器如果要切换显示/隐藏不要用 Visible 属性
- Windows安全策略
- Python数据分析工具:Pandas_Part 1
- C#进阶系列——WebApi 身份认证解决方案:Basic基础认证