部署速度优化

通过优化构建工具和部署脚本,减少部署耗时。

优化构建工具

1、使用 esbuild 和升级 webpack5

接入 esbuild 可以使用 infrad 提供的插件:xxx

PS:下面结论中看到的最差部署速度 4min32s 为构建工具优化后的结果,优化前为 7min+

减少网络下载用时

不更换部署方案的前提下,主要减少网络下载占时(减少镜像和依赖大小),并使缓存生效。

修改 Dockerfile

1、将 node 镜像改为精简版的镜像

不要使用 16+的镜像,node 有重大更新会导致某个工具报错。

如果使用精简版的镜像报错,请用回完整版的镜像。

FROM hostname.com/prado-user-images/node:latest AS builder

改为

FROM node:16-alpine AS builder

2、修改 yarn 的执行时机使 yarn install 的执缓存生效

COPY package.json yarn.lock ./
COPY . ./
RUN yarn install –frozen-lockfile

改为

COPY package.json yarn.lock ./
RUN yarn
COPY . ./

3、合并命令,减少容器创建销毁

RUN yarn build:$ENV && rm -rf ./node_modules/

删除多余依赖

使用下面命令查看 node_modules 下各个文件夹的大小,谁大就想办法删掉谁(一些功能重复的依赖如 antd 何 infrad、lodash 和 lamda)

du -d 1 -h | sort -h # 获取目录下文件夹的大小并排序

结果

最优速度为 93 秒,其中构建速度占 73 秒,目前瓶颈在构建太久。

result