如题,出现这个错误,是因为react项目中使用了@语法的装饰器,而我们项目的一些配置没有设置正确导致的。为了使用装饰器,需要修改如下三处配置:
1、运行依赖
npm install @babel/plugin-proposal-decorators customize-cra react-app-rewired --save-dev
如果你直接在package.json里面配置,可以类似如下(只需要修改对应版本号,推荐使用npm install xxx --save-dev直接安装):
"devDependencies": {
"@babel/plugin-proposal-decorators": "^7.7.4",
"customize-cra": "^0.9.1",
"react-app-rewired": "^2.1.5"
}
然后运行npm install即可。
2、config-overrides.js,该文件在package.json同级目录下。
const {override,addBabelPlugins} = require('customize-cra')
module.exports = override(
addBabelPlugins(
[
"@babel/plugin-proposal-decorators",
{
"legacy": true
}
]
)
)
这部分也可以修改为如下的代码:
const {override,addDecoratorsLegacy} = require("customize-cra");
module.exports = override(
addDecoratorsLegacy()
)
3、start启动脚本命令需要更改,这里需要使用第一步安装的react-app-rewired来启动。
"scripts":{
"start":"react-app-rewired start"
}
重新运行npm start启动项目就不会报错了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)