ziwei3749 / blog

已停止更新..转移至 https://segmentfault.com/u/ziwei3749
9 stars 1 forks source link

脚手架的功能和本质 #17

Open ziwei3749 opened 6 years ago

ziwei3749 commented 6 years ago

脚手架的功能和本质

2.1脚手架的功能和本质

我们可以自己选择用什么框架、是否需要前端路由、是否用css预编译器,用less还是sass。

我们通过传递给脚手架一些参数配置,最终生成一个合适的方案。

所以说脚手架是对方案的封装。

2.2脚手架在前端工程中的角色和特征

2.2.1用完即弃的发起者角色

脚手架 --> 开发(本地服务器) --> 构建 --> 部署测试 --> 测试 --> 部署上线

前端工程化并不是vue全家桶或者react全家桶,而是一种服务,是辅助性质的。

辅助的是一线的业务开发人员,在一套合理的前端开发体系下,让开发人员只需要

把精力放在业务开发上。即时公司给出了明确的文档,也不应该强制要求每一个开

发人员花太多时间学习配置细节,比如公司明确了一套规范,告诉开发人员,应该

如何配置eslint,如何配置sass,如何部署,这些都不如一个脚手架直接生成统

一标准的方案配置

所以脚手架要解决的问题就是:

比如vue-cli,就不用了解vue-loader的细节。什么vue分别运行时和完整版,如果引入vue-router在自己的项目里,脚手架已经帮你下载、配置,甚至打好样了。

随着前端工程提供功能越来越多,需求越来越复杂,脚手架的威力也为越来越大。

配置一个简单的index.html肯定不需要脚手架。

2.2.2 局限于本地的执行环境

前端工程化的3个阶段

三者区别: 各个功能模块的执行环境不同。

执行环境分4类:

其中测试环境和生产环境,与开发无关,所无论处于工程化哪个阶段,各个功能模块的执行环境的划分都是一致的

所以,无论是最简单的本地工具链还是持续集成,脚手架的执行环境都是在本地环境,这给脚手架工具带了一个必须解决的问题: 操作系统的兼容性

2.2.3 多样性的实现模式

因为前端可以选择的技术组合太多了,脚手架没有一个通过一的规范。

比如vue-cli和create-react-app各不相同。

但是优秀的脚手架工具往往有一下原则:

丰富不烦琐: 比如create-react-app,只开放一个swich给用户,而且不管siwtch是否打开,都是有默认值的。

2.3 开源脚手架案例剖析

介绍3个比较典型的案例,都是成熟的脚手架方案

Yeoman提供了一整套完整的脚手架开发API,使用这个API可以定制符合自己业务需求的任意脚手架方案。

如果你需要开发一个属于自己IDE脚手架,Yeoman是最好的选择

2.4 集成Yeoman封装脚手架方案