.babelrc中插件和预设之间的区别

时间:2017-08-29 16:17:18

标签: configuration babeljs rc

情况

所以我有!这样:

test

问题

预设和插件有什么区别?我应该使用哪一个来配置Babel?

1 个答案:

答案 0 :(得分:15)

TL;博士

预设只是插件的集合。您可以在.babelrc数组或{ "presets": [ "es2015", "stage-2", "react" ], "plugins": [ "transform-decorators-legacy" ] } 数组中的插件集合中单独包含插件。如果插件是集合的一部分(预设),则您不必将其单独包含在plugins中。

presets中包含它们时,npm包也是如此。

预设与插件

Babel有很多official and third party plugins。预设是插件集合或as they say

  

预设是可共享的plugins配置或简单的一组babel插件。

预设

的插件

最常见的预设是official onesexperimental presets

大多数官方预设都包含用于转换EcmaScript标准功能的插件,而实验(stage-x)预设包含的插件可以转换未来的实验功能,其标准化仍在进行中。从第0阶段(只是一个想法)到第3阶段(候选人),你将拥有更接近标准化的插件集合。因此,当您包含预设时,每个预设都会包含更高的stage-x值。这些预设中包含的插件在每个版本中都会不断变化,因为它们正在进行中,如果插件被拒绝,插件有可能被删除。这就是你需要transform-decorators-legacy的原因,因为虽然they will add it back in the future已经从Babel删除了装饰器的转换。

单击预设时,您可以看到其中包含哪些插件(可能还有其他预设)。如果您通过预设添加了插件,则不必单独添加插件。当您包含预设的npm包时,package.json也是如此。