Babel 6预设的顺序是否重要?

sfl*_*che 26 javascript babeljs

当我列出预设时,订单是否重要?

换句话说,以下.babelrc文件是等效的吗?

.babelrc #1

{
  "presets": ["es2015", "stage-2", "react"]
}
Run Code Online (Sandbox Code Playgroud)

.babelrc #2

{
  "presets": ["react", "stage-2", "es2015"]
}
Run Code Online (Sandbox Code Playgroud)

nex*_*ech 42

来自babeljs.io/docs/plugins :(截至2016年9月30日)

插件/预设订购

订购插件中每个访问者的事项.这意味着如果两个变换都访问"Program",则变换将以插件或预设顺序运行.

插件在预设之前运行.

插件排序是第一个.

"plugins": [
  "transform-decorators-legacy", // will run first
  "transform-class-properties" // will run second
]
Run Code Online (Sandbox Code Playgroud)

预设顺序相反(从最后到第一个).

是的这令人困惑,请参阅babel/notes#2.

我认为(对于向后兼容性)的原因是大多数用户首先列出"es2015"和"0"秒.而阶段0将在2015年之前运行.

"presets": [
  "es2015", // will run third
  "react", // will run second
  "stage-2" // will run first
]
Run Code Online (Sandbox Code Playgroud)