前端开发一个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让编译速度飙升相关推荐

  1. 慢腾腾的Quartus prime16.0加快编译速度

    前言 当一个工程反复修改的时候,可能有时候源代码没有更改,为了加快编译速度可以配置quartus一些选项.当然,初次编译的速度是否会提升,未验证.更高级的设计分区以及逻辑锁区提升速度,以后阐述. 流程 ...

  2. linux 编译opencv 慢,opencv4.0 cuda10 编译速度太慢

    图论$\cdot$最短路问题 Dijkstra单源最短路径算法 Dijkstra可以计算出发点到每个点的最短路,及单源最短路径(SSSP).这一特点使得Dijkstra常常用来进行其他算法的预处理.用 ...

  3. Ninja提升编译速度的方法-Android10.0编译系统(十)

    摘要:如何通过Ninja来提升Android编译速度 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢 ...

  4. Next.js 7.0正式发布:重新编译速度提高42%,支持WebAssembly

    在经过26次金丝雀发布和340万次下载之后,现在,我们正式推出生产就绪的Next.js 7. \\ DX改进:启动速度提高57%,重新编译速度提高42%:\\t 使用react-error-overl ...

  5. webpack4.0打包优化策略(二)

    打包优化策略 webpack4.0打包优化策略(一) webpack4.0打包优化策略(二) webpack4.0打包优化策略(三) 区分开发和生产环境 通常我们在开发网页时需要区分构建环境 开发环境 ...

  6. webpack4.0各个击破(4)—— Javascript splitChunk

    [摘要] webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点 ...

  7. iOS - Xcode提高编译速度,增量编译,ccache

    前言 贝聊目前开发的两款App分别是贝聊家长版和贝聊老师版,最近因为在快速迭代开发新功能,项目规模急速增长,单个端业务代码约23万行,私有库约6万行,第三方库代码约15万行,单个客户端的代码行数约60 ...

  8. [贝聊科技]如何将 iOS 项目的编译速度提高5倍

    前言 贝聊目前开发的两款App分别是贝聊家长版和贝聊老师版,最近因为在快速迭代开发新功能,项目规模急速增长,单个端业务代码约23万行,私有库约6万行,第三方库代码约15万行,单个客户端的代码行数约60 ...

  9. 利用Injection插件加快Xcode编译速度

    我们在调试iOS原生代码时,每次修改都需要Command+R来重新编译运行.当项目代码量很大,编译时间就会很漫长.因此对于开发中来说,如果能加快编译速度,能大大提高生产效率.如果我们能像Swift P ...

最新文章

  1. 英特尔变身数据公司 未来最大数据市场定是中国
  2. 005_html文档类型
  3. 计算机技术应用体验,信息技术应用体验学习心得体会
  4. 开源CMS webEdition 6发布
  5. 舞伴配对问题java_舞伴配对问题
  6. SQL2005的配置
  7. 【华为云技术分享】基于Atlas 200 DK的原版YOLOv3(基于Darknet-53)实现(Python版本)
  8. 因涉嫌信披违规 神州优车被证监会立案调查
  9. Windows 底层驱动级 Anti-Rootkit 工具 ScDetective 源代码
  10. tomcat7 安装和环境变量配置
  11. Word2003中Visio2003图打印错误的解决方法
  12. hexo文章中插入图片
  13. ROMS海洋模式笔记
  14. 新晋流量操盘手(一行) 探索百度贴吧高阶引流玩法
  15. 心不动——王阳明最可怕之处
  16. [最小割最大流 || 最短路] roadblock Dinic SPFA + SLE
  17. EXCEL通过IF与COUNTIF嵌套解决多条件筛选需要注意的问题
  18. magent java_bt种子简介与magnet磁力介绍
  19. 小白java环境变量配置
  20. 移动端最常用的四个框架

热门文章

  1. 从蜘蛛网到物联网 这张网人类织了多久?
  2. Visual Studio2005的加载此属性页时出错的解决办法(转)
  3. 使用JCIFS获取远程共享文件
  4. android 开发 获取各种intent (图片、apk文件、excel、pdf等文件)
  5. Java Swing 皮肤
  6. Exchange server 2010系列教程之一 安装Exchange 2010准备条件
  7. asp.net 包含动态创建控件的容器如果要切换显示/隐藏不要用 Visible 属性
  8. Windows安全策略
  9. Python数据分析工具:Pandas_Part 1
  10. C#进阶系列——WebApi 身份认证解决方案:Basic基础认证