这是我找到的最好的解决方案,无需弹出。替换 create-react-scripts。
https://www.npmjs.com/package/custom-react-scripts
如果您有一个新项目,请在终端中使用它:
create-react-app my-app --scripts-version custom-react-scripts
然后 cd 进入 my-app 目录并创建一个 .env 文件。将 .env 文件编辑为:
REACT_APP_BABEL_STAGE_0=true
REACT_APP_DECORATORS=true
您的应用程序现在将支持装饰器。
如果您有一个现有的应用程序并想添加它。添加 .env 像上面那样:
npm i custom-react-scripts --save
删除 package.json 中的 react-scripts。不要更改从 react-scripts start 到 create-react-scripts start 的脚本。保留脚本原样。
现在用装饰器添加你的 mobx 东西,享受更少的样板代码。
我的最终 package.json
{
"name": "mobx-test",
"version": "0.1.0",
"private": true,
"dependencies": {
"custom-react-scripts": "^0.2.1",
"mobx": "^3.4.0",
"mobx-react": "^4.3.5",
"react": "^16.2.0",
"react-dom": "^16.2.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
哦,如果您使用的是 vscode,您将需要隐藏有关不受支持的装饰器的警告。为此,将 tsconfig.json 文件添加到您的项目中
{
"compilerOptions": {
"experimentalDecorators": true,
"allowJs": true
}
}