1 什么是前端工程

  • 1.1 广义的前端工程

    前端工程是软件工程的一个子类,指的是将软件工程的方法和原理运用在前端开发中, 目的是实现 高效开发有效协同质量可控

  • 1.2 狭义的前端工程

    前端工程是指将 开发阶段 的代码转变成 生产环境 的代码的一系列步骤。主要包括 开发, 构建 , 管理 , 测试, 部署, 运维 等。

文桥 2017/03/20

2 为什么要提前端工程

  • 2.1 传统开发

    • 切图 -> 套页面 -> 后端模板引擎(前后端耦合、难维护等等)
  • 2.2 现在的前端

    • 前端范畴不断扩大(多端)
    • 前后端分离(前端模板引擎)
    • 模块化开发(面向业务)
    • 组件化开发(脱离业务、细粒度、可复用)
    • 编译原理在前端大放异彩

3 讨论:前端工程化体系

前端工程化体系示例

4 前端工程化体系(大前端)

  • web 应用开发层
    • 分治(模块化、组件化)
    • 前后端彻底分离(Mock Server、JSON Server)
  • Node 服务层
    • Model、Router、View
  • 前端运维层
    • Lint(StyleLint、ESLint)
    • Unit Test(Mocha)
    • CD
    • CI(Gitlab-CI、Docker)
    • Bootstrap(Forever、PM2)
    • Monitoring(Keymetrics.io、Sentry.io)

5 asset.json

{
  "index": {
    "main.css": "static/css/main.ad87bbd6.css",
    "main.js": "static/js/main.a3907cec.js",
    "static/media/yay.jpg": "static/media/yay.44dd3333.jpg"
  },
  "club": {
    "main.css": "static/css/main.ad87bbd6.css",
    "main.js": "static/js/main.a3907cec.js",
    "static/media/yay.jpg": "static/media/yay.44dd3333.jpg"
  }
}

6 FE-Project 的发布

  • 6.1 原始发布

原始发布

6 FE-Project 的发布

  • 6.2 增量发布

增量发布

6 FE-Project 的发布

  • 6.3 动静分离的CDN节点发布

动静分离的CDN节点发布

6 FE-Project 的发布

  • 6.4 覆盖式发布的痛点

    • 先部署页面,再部署资源
    • 先部署资源,再部署页面

6 FE-Project 的发布

  • 6.5 非覆盖式发布

非覆盖式发布

7 web 应用上线、更新的部署

工程化的 web 应用上线、更新的部署