webpack + react 前端工程化实践和暂不极致优化
技术结构
webpack + react + react-router
功能实现
关于打包
1.基于react-router的自定义打包code split。
2.分包异步按需加载。
3.CommonsChunkPlugin公共代码打包提取。
4.ParallelUglifyPlugin多线程代码压缩。
5.HappyPack多线程loader任务处理。
6.webpack tree shaking
开发模式
1.express + webpack-dev-middleware + webpack-hot-middleware 本地开发服务器和文件修改热加载及实时刷新。
2.mock数据,data.json进行接口和模拟数据配置,实时生效。
3.基于nodejs的http模块,实现本地服务器http请求代理转发,开发模式下直接请求测试环境或线上RESTfull api接口。
业务功能支持
1.基于react-router的页面跳转控制
2.可配置的多级菜单组件
3.基于cookie的权限控制功能
4.客户端http请求封装
5.引入element-react、antd两个常用ui组件库(对element-react做了通用代码抽离,antd做了组件按需加载)
6.集成less
使用说明
安装npm依赖
npm i --save
开发模式启动(使用data.json mock数据)
npm run dev
开发模式启动(使用代理转发)
修改'build/proxy.js'的http option配置(hostname属性和header自定义配置)
npm run dev --pxy
生产环境打包
'build/config.js'可对打包入口和输出路径做配置。
npm run build
git地址:https://github.com/IveHD/web-project-go
webpack + react 前端工程化实践和暂不极致优化的更多相关文章
- [转]基于gulp和webpack的前端工程化
		本文样例代码 :https://github.com/demohi/learning-gulp 本文主要简单介绍一下基于gulp和webpack的前端工程化. 技术栈 React.js reFlux ... 
- 基于webpack的前端工程化开发解决方案探索(一):动态生成HTML(转)
		1.什么是工程化开发 软件工程的工程化开发概念由来已久,但对于前端开发来说,我们没有像VS或者eclipse这样量身打造的IDE,因为在大多数人眼中,前端代码无需编译,因此只要一个浏览器来运行调试就行 ... 
- [vue]webpack&vue组件工程化实践
		[vue]全局组件和局部组件(嵌套+props引用父组件数据) [vue]组件篇 [vue]组件的创建(componet)和销毁(keep-alive缓存)和父子dom同步nextTick [vue] ... 
- 基于webpack的前端工程化开发解决方案探索(二):代码分割与图片加载
		今天我们继续来进行webpack工程化开发的探索! 首先来验证上一篇文章 基于webpack的前端工程化开发解决方案探索(一):动态生成HTML 中的遗留问题:webpack将如何处理按需加载的 ... 
- 阿里云无线&前端团队是如何基于webpack实现前端工程化的
		背景 前端经历了初期的野蛮生长(切图,写简单的特效)——为了兼容浏览器兼容性而出现的各种类库(JQUERY,YUI等——mv*(饱暖思淫欲,代码多了,也就想到怎样组织代码结构,backbone,ang ... 
- 基于webpack的前端工程化开发解决方案探索(三):webpack-dev-server
		前两篇中我们使用webpack完成了静态资源(css/js/img)等自动写入HTML模板中,同时还可以为静态资源添加hash版本号,既满足了我们对于静态资源的打包要求,同时又无需开发人员介入打包过程 ... 
- 前端工程化(二)---webpack配置
		导航 前端工程化(一)---工程基础目录搭建 前端工程化(二)---webpack配置 前端工程化(三)---Vue的开发模式 前端工程化(四)---helloWord 继续上一遍的配置,本节主要记录 ... 
- 使用webpack+vue.js构建前端工程化
		参考文章:https://blog.csdn.net/qq_40208605/article/details/80661572 使用webpack+vue.js构建前端工程化本篇主要介绍三块知识点: ... 
- Webpack+React+ES6开发模式入门指南
		React无疑是今年最火的前端框架,github上的star直逼30,000,基于React的React Native的star也直逼20,000.有了React,组件化似乎不再步履蹒跚,有了Reac ... 
随机推荐
- Linux笔记二
			用户和组 添加一个tom用户,设置它属于users组,并添加注释信息分步完成:useradd tom usermod -g users tom usermod -c "hr tom" ... 
- 【bzoj1977】[BeiJing2010组队]次小生成树 Tree  最小生成树+权值线段树合并
			题目描述 求一张图的严格次小生成树的边权和,保证存在. 输入 第一行包含两个整数N 和M,表示无向图的点数与边数. 接下来 M行,每行 3个数x y z 表示,点 x 和点y之间有一条边,边的权值为z ... 
- 在C/C++函数中使用可变参数
			原文链接地址:http://blog.csdn.net/djinglan/article/details/8425768 下面介绍在C/C++里面使用的可变参数函数. 先说明可变参数是什么,先回顾一下 ... 
- 遇到问题---java---myeclipse中maven项目引用另一个导致的resource文件混乱的问题
			遇到情况 情况是这样的,我们在构建项目时,经常会把一些公用的类和配置提取出去,作为一个公共项目.然后把公共项目作为一个jar包构件引入我们当前的项目中. 引入方式是 <dependency> ... 
- 【CF MEMSQL 3.0 B. Lazy Security Guard】
			time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ... 
- shell里的getopts
			By francis_hao Jul 5,2017 getopts是shell的一个内置命令. 概述 getopts optstring name [args]OPTIND,OPTARG,O ... 
- 如何最快地实现 ALTER TABLE
			如果您不了解ALTER TABLE的语法,可以先参考: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html 使用ALTER TABLE 可以 ... 
- HDU 5671 矩阵
			Matrix Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Su ... 
- vue-transition-fade
			<!Doctype> <html> <head> <meta charset="utf-8"> <meta name=&quo ... 
- 《vue.js实战》练习---标签页组件
			html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ... 
