6
的巴貝爾plugin docs說:合併與非ENV選項ENV選項時,巴貝爾插件爲了
- 插件預置之前運行。
- 插件排序是第一個持續。
- 預設順序顛倒(從上到下)。
的巴貝爾.babelrc docs說:具體到某個環境
選項被合併到並覆蓋非ENV特定選項。
文檔沒有說明它們是如何合併的。
我正在使用樣板文件React項目react-slingshot,我想利用類屬性轉換。該項目使用babel-preset-stage-1
,其中包括babel-plugin-transform-class-properties
。類的屬性變換應該讓我寫這樣的代碼:
class Example extends Component {
static propTypes = {
...
}
}
在該項目中的.babelrc
是:
{
"presets": [
"react",
"stage-1"
],
"env": {
"development": {
"presets": [
"latest",
"react-hmre"
]
},
"production": {
"presets": [
["latest", {
"es2015": {
"modules": false
}
}]
],
"plugins": [
"transform-react-constant-elements",
"transform-react-remove-prop-types"
]
},
"test": {
"presets": [
"latest"
]
}
}
}
但是使用這個時候原樣,我得到:
Module build failed: SyntaxError: Missing class properties transform.
5 | class Example extends Component {
> 6 | static propTypes = {
| ^
7 | ...
8 | }
9 |
類屬性轉換就在那裏,但顯然這個排序是失控的。
我沒有得到它通過手動合併非ENV預置到ENV預設沒有任何錯誤編譯,但現在有很多重複的:
{
"env": {
"development": {
"presets": [
"latest",
"react-hmre",
"stage-1",
"react"
]
},
"production": {
"presets": [
["latest", {
"es2015": {
"modules": false
}
}],
"stage-1",
"react"
],
"plugins": [
"transform-react-constant-elements",
"transform-react-remove-prop-types"
]
},
"test": {
"presets": [
"latest",
"stage-1",
"react"
]
}
}
}
有什麼方法來指定插件順序何時使用env和非env選項?