我已经将使用Babel 7的RN应用程序从0.55.4升级到0.56。
在0.55.4中,要为MOBX使用装饰器,我使用“ babel-plugin-transform-decorators-legacy”,但与Babel 7不兼容。
react-native版本:0.56.0 mobx版本:5.0.3 mobx反应版本:5.2.3
有人有解决方案吗?
谢谢
更新:
该应用程序可DEBUG与此配置一起使用
DEBUG
package.json
... "devDependencies": { "@babel/core": "7.0.0-beta.47", "@babel/plugin-proposal-decorators": "7.0.0-beta.47" ... }
.babelrc
{ "presets": [ ["react-native"] ], "plugins": [ ["@babel/plugin-proposal-decorators", { "legacy": true }] ] }
但是在RELEASExCode崩溃时出现此错误:
RELEASE
babelHelpers.applyDecoratedDescriptor is not a function.
更新2,工作配置:
这是我的工作配置:
... "devDependencies": { "@babel/core": "7.0.0-beta.47", "@babel/plugin-proposal-decorators": "7.0.0-beta.47", "@babel/runtime": "7.0.0-beta.47", "babel-jest": "23.2.0", "babel-preset-react-native": "5.0.2", "jest": "23.3.0", "react-test-renderer": "16.4.1" } ...
然后在index.js(主应用程序开始文件)中,我需要导入装饰器babel库:
index.js
import applyDecoratedDescriptor from '@babel/runtime/helpers/es6/applyDecoratedDescriptor'; import initializerDefineProperty from '@babel/runtime/helpers/es6/initializerDefineProperty'; Object.assign(babelHelpers, {applyDecoratedDescriptor, initializerDefineProperty}); require('./app.js');
app.js
import {AppRegistry} from 'react-native'; import AppName from './app/index'; AppRegistry.registerComponent(appName, () => AppName);
好吧,我加入解决了所有的错误@babel/runtime,现在在应用的工作原理DEBUG和RELEASE太。
@babel/runtime
这里是正确的配置:
... "devDependencies": { "@babel/core": "7.0.0-beta.47", "@babel/plugin-proposal-decorators": "7.0.0-beta.47", "@babel/plugin-transform-runtime": "7.0.0-beta.47", "@babel/runtime": "7.0.0-beta.47", "babel-jest": "23.2.0", "babel-preset-react-native": "5.0.2", "jest": "23.3.0", "react-test-renderer": "16.4.1" } ...
{ "presets": [ "react-native" ], "plugins": [ ["@babel/plugin-proposal-decorators", { "legacy": true }], ["@babel/plugin-transform-runtime", { "helpers": true, "polyfill": false, "regenerator": false }] ] }
谢谢@Hkan。