前言
本文只是从构建发布的层面去见见前端发展历程,不会把那些百度百科的东西搬进来,让新手可以初步的理解前端工程化做什么
发展阶段
模版语言
web1.0时代 这时候,前端工程师只是纯粹的在后端语言上用js修改dom,典型php的wordpress和jsp;
- 前端路由和服务端是在一起的,前端的所有请求都需要刷新页面
- 前端的发布直接通过ftp协议上传到服务端的MVC的view层目录下,典型的服务容器Apache,xampp相信你们应该用过(那个配置真的。。。)
ajax前后端分离
web2.0时代Ajax的出现,这时候前端可以做到了掉接口无刷新页面,开始出现了丰富的交互,典型代表jquery
- 前端路由和服务端依旧是在一起的,一些ide已经可以做到开发时候自己刷新页面了
- 富交互的出现,前端代码量增加,前端的发布开始用一些本地的shell脚本或者工具去压缩js、html、图片,通过接口上传到服务器
- nginx逐渐开始推广,简单的静态文件访问配置,可以做到上线前后端分离
构建工具时代
H5时代,交互越来越复杂,前端代码暴增,出现了一堆模块依赖处理的框架典型的angular、vue、react
- 前端路由与服务端分离、一些开发工具可以做到实时构建和热更新(比如webpack)
- node的出现使得前端自己可以在工程化做更多的事情,代码检查-》构建-》预览-》跑分-》审批-》AB/全量上线
gulp
- 基于pipe流去处理任务,和cicd一样,但是无法做依赖分析
- 这时候任务流一般都只是用来压缩、拷贝和发布,初步的应用ast
webpack
- 可以做依赖分析,有固定的生命周期,插件只能在构建的生命周期内处理
- 广泛的应用ast根据依赖进行转译(jsx->js或者vue-》js),压缩、拷贝、构建持久化
结语
工程化其实就是把人工原来手动做的事情自动化,节约人效