Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/legoflow/next
v3.x
https://github.com/legoflow/next
Last synced: 3 days ago
JSON representation
v3.x
- Host: GitHub
- URL: https://github.com/legoflow/next
- Owner: legoflow
- Created: 2020-07-28T03:32:24.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-09-28T10:06:20.000Z (about 3 years ago)
- Last Synced: 2024-11-01T18:16:24.943Z (12 days ago)
- Language: JavaScript
- Homepage:
- Size: 652 KB
- Stars: 8
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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)