配置 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/*"]
}
我已经使用 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/*"]
}