1、js提案
提案共分为五个阶段:
- stage-0: 稻草人-只是一个大胆的想法
- stage-1: 提案-初步尝试
- stage-2: 初稿-完成初步规范
- stage-3: 候选-完成规范和浏览器初步实现
- stage-4: 完成-将被添加到下一年发布
2、plugin和preset的关系
Babel插件一般尽可能拆成小的力度,开发者可以按需引进。比如对 ES6 转 ES5 的功能,Babel 官方拆成了20+个插件。
这样的好处显而易见,既提高了性能,也提高了扩展性。比如开发者想要体验ES6 的箭头函数特性,那他只需要引入 transform-es2015-arrow-functions 插件就可以,而不是加载 ES6 全家桶。
但很多时候,逐个插件引入的效率比较低下。比如在项目开发中,开发者想要将所有 ES6 的代码转成ES5,插件逐个引入的方式令人抓狂,不单费力,而且容易出错。这个时候,可以采用 Babel Preset。
可以简单的把 Babel Preset 视为 Babel Plugin 的集合。比如 babel-preset-es2015 就包含了所有跟 ES6 转换有关的插件。
可以同时使用多个 Plugin 和 Preset,此时,它们的执行顺序非常重要。
- plugin 会运行在 preset 之前。
- plugin 会从第一个开始顺序执行。
- preset 的顺序则刚好相反(从最后一个逆序执行)。