Skip to content

Latest commit

 

History

History

fe-build

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

前端构建

・・・・・・ 之 ・・・・・・
过去、现在和未来

Introduction of

My Company
and Myself

百姓网

www.baixing.com

Send your resume to 简历请投 [email protected]

github: @hax

zhihu: 贺师俊
weibo: @johnhax

1998年第一次写网页, 2003年某网站技术总监, 2005年某外企软件架构师, 2007年某外企网站系统甲方, 2010年盛大创新院研究员……, 盛大电子书Web框架研发工程师, 2012年百姓网唯二的前端工程师, 2016年百姓网架构组Web前端之一

Title不重要, 重要的是:

找到自己, 真正想做的事情

工作

Job, 差事

Career, 职业

Vocation, Calling

事业, 使命

调用、呼叫, 呼唤、召唤

教练,我想打篮球

教练,我想写前端

MY CALLING

前端 JS

johnhax.net/events zhihu answers timeline github public activity

前端构建

・・・・・・ 之 ・・・・・・
过去、现在和未来

过去

追溯到最早

十年之前, 我不认识你, 你不属于我, 我们还是一样, 切页面写前端

当年没有

build

build, compile, link, IDE, make

写页面, 刷新, 调样式, 刷新, repeat

不过……

压缩, 合并, JSMin (2001)

压缩 => 减小体积 合并 => 减少请求

文件名替换

资源永久缓存, Facebook (2005)

资源内容变更 => URL变更

版本号 时间戳 hash值

技术难点,

  • 版本管理
  • 依赖有向图
  • 变更spread

开山之作, 必须自动化

历史局限性, 技术门槛高, 缺少开源版本, 前端工具缺乏统一平台

目的:性能优化, 只在部署步骤做 不影响开发流程 但影响代码习惯

CSS预处理器, SASS (2007)

第一次,

  • 在核心环节引入编译
  • 将构建引入开发流程
  • 通过构建解决兼容性
  • 通过构建提升开发效率
  • 通过构建降低开发难度

历史局限性, 绝大部分前端 抗拒, 前端工具缺乏统一平台

前端库的定制化,

  • Modernizr
  • Dojo
  • jQuery

鸡肋, 前端工具缺乏统一平台

前端模块加载器, RequireJS (2009) Sea.js (2011)

开发时传统模式 部署时编译打包

开发时传统模式 与构建演化矛盾

前端工具缺乏统一平台

前端工具缺乏统一平台

Node.js (2009)

Less (2010) Browserify (2011) Grunt (2011)

JS编译器, Babel (2014/9)

GWT (2006)

历史意义, 证明了编译 到JS的道路, Production

历史局限性, 最早仅用于Ajax接口, 面向后端开发 归属于后端构建 对前端影响很小

JSVM (2004)

先驱

没有对业界产生 实质性影响

CoffeeScript (2009)

历史意义, 第一门流行的 AltJS, 必然依赖构建

Babel (2014/9)

改变生态, 正向反馈

JavaScript The World's Best Programming Language

必须用Babel, 必须上构建

自动化构建工具 Grunt (2011) Gulp (2013/6) Broccoli (2013/11)

前端构建的集大成者 Webpack (2012)

基于Loader, 分析依赖, 模块打包

现在

十年之后, 我们是朋友, 还可以问候, 今天你上全家桶 用Vue 2.0了吗?

React/Vue2等 应用框架本身 就需要构建

问题

流程长

编译慢

配置复杂

npm小模块方法论

开发效率下降

JavaScript 从入门到放弃 JavaScript 从入门到放弃

性能优化 Hold不住了

HTTP/2

减少请求

ServiceWorker

永久缓存

构建是静态的

运行时才能决定

按需加载

chunk策略

polyfill

未来

又十年之后, AGI出现, 程序员从此下岗……

再十年之后, ASI出现, 世界大同

若干年后, 人类灭亡

THE END

THE END

画风不对……

未来

Normalize

去年我做了 预言

似乎太乐观了?

jsfiddle

polyfill.io

jspm.io

拭目以待, 创造未来

QA

github: @hax

zhihu: 贺师俊
weibo: @johnhax

THE END