为什么 babel 要有 preset:

门面模式(Facade)是 23种设计模式之一,是为了降低客户端和各种子系统的交互复杂度的,其实 preset 就是一种 门面模式的思想。

因为 babel 内部的 plugins 特别多,而且什么情况下用什么插件会比较复杂,如果让用户自己去装插件,那么就把复杂度直接暴露给用户了,所以才有了 preset 这一层,只需要简单的配置,然后由 preset 去选择具体的 plugin 来使用。

这个 preset 就是一层门面,简化了系统对外的复杂度。

多了一层处理,就可以很好的治理复杂度,就像我们会用 event 而不是直接调用方法一样,多了一层来隔离可以更好的控制复杂度,暴露简单的门面给用户。

因此,我们学 babel 的使用,主要是学 preset 的各种配置,而不是直接去学应该用 xxx 插件
展开
评论