繁体   English   中英

Babel插件 - 提议装饰器未按预期工作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM