![](/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.