在react中,大家有的使用装饰器,比如路由,或者mobx等,但是会发现默认脚手架不支持,接下来就说一下怎么配置,网上大部分都是使用npm eject来弹出脚手架的默认配置,但这样并不优雅,社区提供了其他方案来解决修改配置的方式
- 首先安装,以下几个依赖
customize-cra
react-app-rewired
@babel/plugin-proposal-decorators
yarn add customize-cra react-app-rewired @babel/plugin-proposal-decorators
- 然后在package.json中添加配置
"babel": {
"presets": [
"react-app"
],
"plugins": [
[
"transform-decorators-legacy"
]
]
}
再更改package.json中的"scripts"部分
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-app-rewired eject"
},
然后重点来了,在项目根目录新建config-overrides.js
文件,再添加以下配置
const { override, addDecoratorsLegacy } = require('customize-cra');
module.exports = override(
addDecoratorsLegacy()
)
这个时候我们便可以开始使用我们的mobx和装饰器了,config-overrides.js
文件就是对项目进行自定义配置的文件,可以进行插件配置,具体直接看这个包的官方api