配置 Create-React-Native-App 项目以使用 MobX 并使用 Babel 启用装饰器

Configure a Create-React-Native-App project to use MobX and use Babel to enable decorators

我已经使用 CRNA 创建了一个项目,经过一些考虑后我决定使用 MobX 进行状态管理。 MobX 最适合装饰器语法(大多数 MobX 文档都是使用装饰器语法编写的)所以我想安装启用装饰器的 Babel 插件。

我已经成功安装了 MobX (yarn add mobx mobx-react),但是在安装了 Babel 插件以启用装饰器之后 (npm install --save-dev babel-plugin-transform-decorators 并在 [=14= 的插件部分添加了 "transform-decorators" ], yarn start 停止工作并抛出有关未找到 react-native-scripts 的错误。

然后我 运行 yarn install这次它抛出一个错误说

Error starting packager: TypeError: Invalid Version: undefined
    at new SemVer (D:\Projects\ReactNativePlayground\omar\MRKT\node_modules\semver\semver.js:279:11)
    at Function.major (D:\Projects\ReactNativePlayground\omar\MRKT\node_modules\semver\semver.js:551:10)
    at D:\xdl\src\project\Doctor.js:634:18
    at D:\Projects\ReactNativePlayground\omar\MRKT\node_modules\lodash\lodash.js:4944:15
    at baseForOwn (D:\Projects\ReactNativePlayground\omar\MRKT\node_modules\lodash\lodash.js:3001:24)
    at D:\Projects\ReactNativePlayground\omar\MRKT\node_modules\lodash\lodash.js:4913:18
    at Function.forEach (D:\Projects\ReactNativePlayground\omar\MRKT\node_modules\lodash\lodash.js:9359:14)
    at D:\xdl\src\project\Doctor.js:624:9
    at Generator.throw (<anonymous>)
    at step (D:\Projects\ReactNativePlayground\omar\MRKT\node_modules\xdl\build\project\Doctor.js:615:191)
error Command failed with exit code 1.

有人使用过 CRNA 和 MobX 吗?非常感谢任何帮助!

我已经解决了。原来 运行 npm install --save-dev babel-plugin-transform-decorators 弄坏了东西。我应该 运行 是 yarn add --dev babel-plugin-transform-decorators-legacy 并将 "transform-decorators-legacy" 添加到 .babelrc 插件部分。完成这些步骤后,我 运行 yarn install 修复了我的项目。

此外,我的编辑器 (VSCode) 发出有关扩展处于试验阶段的警告,因此我将 jsconfig.json 文件添加到根文件夹并在其中添加了以下内容:

{
  "compilerOptions": {
     "experimentalDecorators": true
  },
  "exclude": [".expo/*", "node_modules/*"]
}