列出预设时,顺序是否重要?
换句话说,以下的 .babelrc
文件等效吗?
.babelrc
#1
{
"presets": ["es2015", "stage-2", "react"]
}
.babelrc
#2
.babelrc
#2
{
"presets": ["react", "stage-2", "es2015"]
}
列出预设时,顺序是否重要?
换句话说,以下的 .babelrc
文件等效吗?
.babelrc
#1
{
"presets": ["es2015", "stage-2", "react"]
}
.babelrc
#2
.babelrc
#2
{
"presets": ["react", "stage-2", "es2015"]
}
来自babeljs.io/docs/plugins(截至2016年9月30日):
每个访问者在插件中的顺序都很重要。这意味着如果两个转换都访问“Program”,那么这些转换将按照插件或预设的顺序运行。
"plugins": [
"transform-decorators-legacy", // will run first
"transform-class-properties" // will run second
]
是的,这很令人困惑,请参考babel/notes #2。
我认为之所以这样做(为了向后兼容),是因为大多数用户将“es2015”列在第一位,“stage-0”列在第二位。而 stage-0 会在 es2015 之前运行。
"presets": [
"es2015", // will run third
"react", // will run second
"stage-2" // will run first
]