[转]基于gulp和webpack的前端工程化
本文样例代码 :https://github.com/demohi/learning-gulp
本文主要简单介绍一下基于gulp和webpack的前端工程化。
技术栈
- React.js
- reFlux
- Node.js
我们的需求
- 基于CommonJS模块化开发
- 基于React.js的组件化开发(JSX)
- 为保证组件的复用,css需要打包到js中
- 有国际化需求,静态文件需要部署在CDN上面
工程化工具的选择
- gulp(基于stream的构建工具,与grunt相比,速度快且可编程)
- webpack(前端文件打包工具,支持CommonJS、JSX、css等多种文件混合)
工程化流程

开发模式
开发模式比较简单,主要就是监听文件变化,自动进行打包、合并的操作。
生产模式
参考我们的技术栈与需求,我们的静态文件都要发布到cdn上,而且必须有md5版本号,方便快速发布(cdn更新极其缓慢,所以更新必须使用新的文件名)
生产模式主要增加了文件压缩、文件md5名修改、上传cdn、替换html等操作
这样的好处就是上线非常方便,一个命令即可更新线上,而且不存在缓存问题。
代码参考
基于上述流程写了个demo,供大家参考learning-gulp
可优化的点
- 等gulp4发布,可以直接基于gulp来做串行任务
- 增加livereload,不要再刷新
- 使用react-hot-loader,不刷新实时替换修改
[转]基于gulp和webpack的前端工程化的更多相关文章
- 基于webpack的前端工程化开发解决方案探索(一):动态生成HTML(转)
1.什么是工程化开发 软件工程的工程化开发概念由来已久,但对于前端开发来说,我们没有像VS或者eclipse这样量身打造的IDE,因为在大多数人眼中,前端代码无需编译,因此只要一个浏览器来运行调试就行 ...
- 基于webpack的前端工程化开发解决方案探索(二):代码分割与图片加载
今天我们继续来进行webpack工程化开发的探索! 首先来验证上一篇文章 基于webpack的前端工程化开发解决方案探索(一):动态生成HTML 中的遗留问题:webpack将如何处理按需加载的 ...
- 阿里云无线&前端团队是如何基于webpack实现前端工程化的
背景 前端经历了初期的野蛮生长(切图,写简单的特效)——为了兼容浏览器兼容性而出现的各种类库(JQUERY,YUI等——mv*(饱暖思淫欲,代码多了,也就想到怎样组织代码结构,backbone,ang ...
- 基于webpack的前端工程化开发解决方案探索(三):webpack-dev-server
前两篇中我们使用webpack完成了静态资源(css/js/img)等自动写入HTML模板中,同时还可以为静态资源添加hash版本号,既满足了我们对于静态资源的打包要求,同时又无需开发人员介入打包过程 ...
- webpack + react 前端工程化实践和暂不极致优化
技术结构 webpack + react + react-router 功能实现 关于打包 1.基于react-router的自定义打包code split.2.分包异步按需加载.3.CommonsC ...
- 【前端自动化构建 grunt、gulp、webpack】
参考资料: 用自动化构建工具增强你的工作流程!:http://www.gulpjs.com.cn/ gulp详细入门教程:http://www.ydcss.com/ JavaScript构建(编绎)系 ...
- 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍
前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...
- 前端工程化(二)---webpack配置
导航 前端工程化(一)---工程基础目录搭建 前端工程化(二)---webpack配置 前端工程化(三)---Vue的开发模式 前端工程化(四)---helloWord 继续上一遍的配置,本节主要记录 ...
- 使用webpack+vue.js构建前端工程化
参考文章:https://blog.csdn.net/qq_40208605/article/details/80661572 使用webpack+vue.js构建前端工程化本篇主要介绍三块知识点: ...
随机推荐
- NYOJ题目596谁是最好的Coder
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAscAAAMaCAIAAADlQ3w8AAAgAElEQVR4nO3dO3LbvN4H4G8T7r2Q1F
- hadoop namenode ha--手动切换(转)
1.hadoop的dfs.nameservices如何配置?2.集群配置中hdfs://mycluster的作用是什么?3.如何将namenode2切换为active状态? 在参考本手册前请确保Had ...
- logstash json和rubydebug 第次重启logstash都会把所有的日志读完 而不是只读入新输入的内容
查看一下agent端的shipper的配置: # cat logstash_test2.shipper.conf input { file { path => ["/apps/logs ...
- 端口扫描之王-----------nmap
[root@ok data]# nmap -F -sT -v nmap.org Starting Nmap 5.51 ( http://nmap.org ) at 2016-10-23 12:46 C ...
- oracle sql rank dense_rank row_number fisrt last
測試表emp
- golang level
exp = (currentLevel-1) * 501 02 503 1004 150startLevel = 1currentLevel = 2currentExp = 0
- html5 svg
html5 svg <html > <body> <p>canvas 用js 绘画,是整幅画布,适合游戏 svg可放大,支持dom 操作,js事件 线性渐变.高斯模 ...
- phpcms标签使用 —— 系统常量
以下系统常量全局可用 1 2 3 4 5 6 7 8 9 10 11 12 13 CACHE_PATH 缓存文件夹地址 SITE_PROTOCOL 主机协议 SITE_URL 当前访问的主机名 HTT ...
- FP-Growth算法及演示程序
FP-Growth算法 FP-Growth(频繁模式增长)算法是韩家炜老师在2000年提出的关联分析算法,它采取如下分治策略:将提供频繁项集的数据库压缩到一棵频繁模式树(FP-Tree),但仍保留项集 ...
- C语言中的static 详细分析
转自:http://blog.csdn.net/keyeagle/article/details/6708077/ google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大 ...