Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/legoflow/next

v3.x
https://github.com/legoflow/next

Last synced: 3 days ago
JSON representation

v3.x

Awesome Lists containing this project

README

        

# LegoFlow Next

**➪ [如何创建项目](./packages/create-lf-app)**

**➪ [开发构建核心](./packages/engine)**

**➪ 解构目的**

过往我们会把开发构建前端依赖的 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 缓存策略

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

2. Docker Image 容器主动缓存

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

## LICENSE

[MIT](./LICENSE)