![](/img/trans.png)
[英]How do i enable "@babel/plugin-proposal-decorators" with vite
[英]Babel plugin-proposal-decorators not working as expected
我在package.json
添加了這兩個devDependencies:
"@babel/plugin-proposal-class-properties": "^7.1.0",
"@babel/plugin-proposal-decorators": "^7.1.6",
在.babelrc
我添加了一個文件作為插件:
{
"presets": ["module:metro-react-native-babel-preset"],
"plugins": [
["@babel/plugin-proposal-decorators", { "legacy": true}],
["@babel/plugin-proposal-class-properties", { "loose": true}]
]
}
我使用mobx所以observable是干凈的語法,我的文件看起來像這樣:
class AppStore {
@observable username = ''
}
export default (new AppStore())
但它始終顯示此錯誤:
我想我已經正確完成了,但無法檢測babel插件是否已加載。
首先,確保您使用的是最新版本的metro-react-native-babel-preset
,他們僅在9天前發布了一個新的小調0.50.0
。
如果這沒有幫助,可能問題來自於metro-react-native-babel-preset
已經包含了class屬性插件這一事實,並且你知道插件的順序很重要 , 你需要有裝飾器在類屬性插件之前運行 。
關於babel的這個主題有很多討論,盡管插件應該在預設之前運行,但它仍然是個問題 。 不幸的是,添加插件訂購功能的PR #5735仍在進行中。
在此期間你可以做的就是分叉你自己的metro-react-native-babel-preset
並在我指向的地方的類屬性插件之前添加裝飾器插件。 您也可以嘗試讓自己的通天預設,包括以正確的順序的兩個插件和地鐵相繼添加它,為預設以相反的順序加載,最后到第一所看到這里 。
另外值得一試的是使用yarn start --reset-cache
啟動打包程序,這可能會解決由錯誤/過時緩存引起的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.