Webcourse/22-前端工程化/08-上线指导.md

108 lines
2.6 KiB
Markdown
Raw Normal View History

2018-03-08 23:34:58 +08:00
## 前言
上线指导包括:
- **生产构建**:合并、抽取、压缩、调试。
- **发布部署**提交、部署、开启gzip压缩、更新CDN。
下面来讲一下。
## 生产构建
生产构建包括:
- 合并style、js
- 抽取样式要从javaSCript中抽取出来
- 压缩JS、CSS都要压缩。
- 调试开启SourceMap。
下面分别讲一下。
2018-03-08 23:40:17 +08:00
### 1&2合并和抽取
2018-03-08 23:34:58 +08:00
我们发现,首页引入了很多`<style>`css
原因很简单:
- 浏览器会先渲染head部分因此css在渲染的时候通常是放在head部分。
- js部分是放在body部分如果css和js混在一起了会导致js的体积比较大。
编译出生产环境下的dist
```
npm run build
```
2018-03-08 23:40:17 +08:00
### 3、压缩
2018-03-08 23:34:58 +08:00
给生产环境的代码做压缩工作。
2018-03-08 23:40:17 +08:00
js压缩用webpack官网提到的[`Minification`](https://doc.webpack-china.org/guides/production/#minification),推荐的插件是`UglifyJSPlugin`。
`UglifyJSPlugin`的指导链接:<https://doc.webpack-china.org/plugins/uglifyjs-webpack-plugin>
2018-03-08 23:34:58 +08:00
css压缩用css loader。
2018-03-08 23:40:17 +08:00
### 4、调试
如果要让线上的代码支持**线上调试**,就要开启`sourceMap`。
2018-03-08 23:34:58 +08:00
2018-03-08 23:40:17 +08:00
`sourceMap`的指导链接:<https://doc.webpack-china.org/guides/production/#source-map>
2018-03-08 23:34:58 +08:00
## 发布部署
发布部署包括:
- 提交
- 部署
- 开启gzip压缩
- 更新CDN
2018-03-08 23:40:17 +08:00
下面分别讲一下。
### 1、提交
2018-03-08 23:34:58 +08:00
使用Git提交代码管理线上版本。
2018-03-08 23:40:17 +08:00
### 2、部署
2018-03-08 23:34:58 +08:00
php、java等服务器端从Git仓库拉去代码依次部署到小流量、单机房、跨机房、全量部署。
流程是这样的前端人员提交代码到Git仓库后端或者运维人员负责部署代码。后端人员先把代码部署到小流量一台机器上供前端人员测试如果没有问题就开始部署单机房等等。
2018-03-08 23:40:17 +08:00
### 3、gzip压缩
2018-03-08 23:34:58 +08:00
gzip一般是服务器端在Ngix就配置好了但是前端人员一定要检查确认一下 css 文件和 js文件有没有开启gzip压缩避免服务器端人员把这个漏掉了。
2018-03-08 23:40:17 +08:00
### 4、更新CDN
2018-03-08 23:34:58 +08:00
CDN的更新有很多种方式。 方式一一般情况下CDN厂商会给业务方提供CDN更新的接口。方式二有的情况下会采用自动更新。不管是哪种方式一定要检查线上的CDN的源代码是否更新了。
比如说代码中修复了某个bug或者增加了新功能如果某个地方的CDN没有更新就会导致**那一片区域**的用户无法访问到你的新代码 or 新功能。