gpt4 book ai didi

javascript - Babel plugin-proposal-decorators 没有按预期工作

转载 作者:数据小太阳 更新时间:2023-10-29 05:24:25 25 4
gpt4 key购买 nike

我在我的 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,所以可观察到的是简洁的语法,我的文件如下所示:

class AppStore {
@observable username = ''
}

export default (new AppStore())

但它总是显示这个错误:

我想我做对了,但是没有办法检测是否加载了 babel 插件。

最佳答案

首先,确保你使用的是最新版本的 metro-react-native-babel-preset,他们发布了一个新的次要版本 0.50.0 只有 9 天以前。

如果这没有帮助,问题可能出在 metro-react-native-babel-preset already includes类属性插件,以及插件的顺序 matter , 您需要在类属性插件之前运行装饰器

关于在 babel 中排序这个主题已经有很多讨论,虽然插件应该在预设之前运行,但它仍然是 would be a problem .不幸公关#5735添加插件排序功能仍在进行中。

同时您可以做的是 fork 您自己的 metro-react-native-babel-preset 并在我指向的位置的类属性插件之前添加装饰器插件。您也可以尝试制作自己的 babel 预设,包括以正确顺序排列的两个插件,并将其添加到 metro 插件之后,因为预设是以相反的顺序加载的,从最后到第一个,如所见 here .

同样值得一试的是使用 yarn start --reset-cache 启动打包程序,这可能会解决由坏的/过时的缓存引起的问题。

关于javascript - Babel plugin-proposal-decorators 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53409498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com