前言
纵观人类历史的发展以及三次工业革命,你会发现利用机器来替代部分人力劳动,将重复的工作自动化从而解放生产力都是发展的必然趋势,在软件工程领域也不例外,其中 CI/CD 就是其中一项,那么什么是 CI/CD 呢,网上的解释不要太多,这里我就直接放一幅 Gitlab 官网的工作流程图好了:
当我们在做 SPA 应用的时候,为了兼容老的浏览器(如 IE9)我们不得不放弃 HTML5 browser history api 而只能采用 hash 路由的这种形式来实现前端路由,但是因为 hash 被路由占据了,导致本来不是问题的锚点功能却成了一个不大不小的问题。
本篇解读是将 api 作为入口进行解读的,因为 redux-saga 的 api 过多尤其是 effect 创建器,所以这里只是挑了常用的 api 做解读。
maxAsyncRequests 和 maxInitialRequests 有相似之处,它俩都是用来限制拆分数量的,maxInitialRequests 是用来限制入口的拆分数量而 maxAsyncRequests 是用来限制异步模块内部的并行最大请求数的,说白了你可以理解为是每个 import()它里面的最大并行请求数量。
maxInitialRequests 是 splitChunks 里面比较难以理解的点之一,它表示允许入口并行加载的最大请求数,之所以有这个配置也是为了对拆分数量进行限制,不至于拆分出太多模块导致请求数量过多而得不偿失。