Skip to content

legoflow/next

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

LegoFlow Next

如何创建项目

开发构建核心

➪ 解构目的

过往我们会把开发构建前端依赖的 node_modules(例如 webpack \ loaders 等)都放置到全局 CLI 上,由全局的 CLI 统筹所有的开发构建任务。

这样慢慢 CLI 功能就会变得越来越臃肿庞大,更加需要不断去维持往下兼容,导致 CLI 技术债务积累到一定程度就需要进行断层更新。

LegoFlow v3 为了彻底解决这样的问题,解构分离 CLI 与 Engine。

CLI 单单作为创建项目脚手架的处理器,基本功能即为拉取 远程模板 进而创建项目。

Engine 作为项目的依赖,内置在项目 node_modules 内,基本功能为提供 基本的 webpack 配置,以及 开发 / 构建 两个阶段的指令。

这样的解耦方式,虽然根源解决了上述问题,但同时引发两个可预见的问题:

  1. 项目依赖 node_modules 占用磁盘空间变大,初始安装时间变长
  2. 单次 CI 构建耗时变长

问题 1 尚可接受。问题 2 严重影响构建发版效率,因而延展出优化 lf next CI 构建方案:

  1. CI Cache 缓存策略

在多次缓存设置中,发现命中缓存的稳定性并不可靠

  1. Docker Image 容器主动缓存

容器内建立固定路径下的缓存 node_modules,主动 cp 到目标项目内,绝大部分依赖可复用情况下,安装效率有效优化

LICENSE

MIT