在利用npx create-react-app my-app
命令構建項目後使用mobx的裝飾器語法時,可能會發生Support for the experimental syntax 'decorators-legacy' isn't currently enabled
錯誤。
這個問題的關鍵是MobX Decorators與Create-React-App v2發生了衝突,需要採取如下做法:
- cnpm install customize-cra react-app-rewired @babel/plugin-proposal-decorators --save;
- 根目錄下創建config-overrides.js文件加入以下代碼:
const { override, addDecoratorsLegacy } = require('customize-cra');
module.exports = override(
addDecoratorsLegacy()
);
修改package.json文件如下:
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-app-rewired eject"
},
- 重啓
eact-app-rewired是react社區開源的一個修改CRA(Create-React-App)配置的工具,例如擴展Create React App的Webpack配置,而customize-cra提供了一組用於自定義利用react-app-rewired核心功能的Create React App v2配置, 可以通過config-overrides.js文件來對webpack配置進行擴展