前端工程如何优雅部署

现在工程是纯zadig部署,前端工程遇到这两个问题
1、每次部署因为都是新的镜像,用户如果在上线前打开页面,上线后用户点击菜单访问其他页面,但页面用的js已经因为老镜像不存在而404了,导致页面报错
2、每次部署因为都是新的镜像,所以每次部署不能用上node_modules的缓存,每次都会花1分钟install,但如果把workspace缓存起来,制作缓存会花更多的时间,node_modules太大了
image
问题1可以通过前端代码监控来主动刷新页面,但问题2目前唯一的思路是装个jenkins,或者有个固定的镜像来打包但不知道怎么做,求助这个问题

关于缓存低效的问题,不一定非要缓存整个 WORKSPACE 的,可以参考文档:工作流的构建缓存 | Zadig 文档

1 个赞

缓存可以配置到目录,只缓存 node_modules,一般来说只有配置缓存后第一次运行需要很久。
后续的任务运行就直接从缓存目录读取了,应该不会那么慢。
如果还是很慢,可以提供下构建配置和脚本,看下是不是哪里配置不对。

npm install 阶段是从1分钟变成了30秒
image
但是每次都有node_modules的备份,要花40多秒


总体效果差不了太多

脚本就是这么点
image
缓存是node_modules

简单介绍一下这块的原理,使用对象存储做缓存的话,系统会把缓存的目录打包,上传到用户配置的对象存储,受限于系统与对象存储之间的网络传输,缓存目录比较大时确实是比较慢。
这个问题优化的话,有两个思路,一个是可以使用集群存储解决。
参考文档:

再就是尝试搭建或者使用集群内网的对象存储,这样都是内网传输,会比较快。

2 个赞

但只缓存node_modules也要40多秒

不要用OSS,Minio,用本地存储应该快很多。OSS有上传、下载的步骤,很耗时