LuckyWinty / fe-weekly-questions

A pro to record some interview questions every week...
MIT License
342 stars 34 forks source link

babel 中的preset 和 plugin代表什么,有什么区别? #85

Open LuckyWinty opened 3 years ago

LuckyWinty commented 3 years ago

plugin 是单个转换功能的实现,当 plugin 比较多或者 plugin 的 options 比较多的时候就会导致使用成本升高。这时候可以封装成一个 preset,用户可以通过 preset 来批量引入 plugin 并进行一些配置。preset 就是对 babel 配置的一层封装。

preset 格式和 plugin 一样,也是可以是一个对象,或者是一个函数,函数的参数也是一样的 api 和 options,区别只是 preset 返回的是配置对象,包含 plugins、presets 等配置。

preset 和 plugin 从形式上差不多,但是应用顺序不同。

babel 会按照如下顺序处理插件和 preset: