Ale*_*edi 14 babel reactjs react-native mobx
我已经将我的RN应用程序从使用Babel 7的0.55.4升级到0.56.
在0.55.4中使用装饰器用于MOBX我使用"babel-plugin-transform-decorators-legacy"但与Babel 7不兼容......
react-native ver:0.56.0 mobx ver:5.0.3 mobx-react ver:5.2.3
有没有人有解决方案?
谢谢
更新:
该应用程序适用DEBUG
于此配置
的package.json
...
"devDependencies": {
"@babel/core": "7.0.0-beta.47",
"@babel/plugin-proposal-decorators": "7.0.0-beta.47"
...
}
Run Code Online (Sandbox Code Playgroud)
.babelrc
{
"presets": [
["react-native"]
],
"plugins": [
["@babel/plugin-proposal-decorators", { "legacy": true }]
]
}
Run Code Online (Sandbox Code Playgroud)
但在RELEASE
xCode崩溃时出现此错误:
babelHelpers.applyDecoratedDescriptor is not a function.
Run Code Online (Sandbox Code Playgroud)
更新2,工作配置:
这是我的工作配置:
的package.json
...
"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"
}
...
Run Code Online (Sandbox Code Playgroud)
.babelrc
{
"presets": [
["react-native"]
],
"plugins": [
["@babel/plugin-proposal-decorators", { "legacy": true }]
]
}
Run Code Online (Sandbox Code Playgroud)
然后在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');
Run Code Online (Sandbox Code Playgroud)
app.js
import {AppRegistry} from 'react-native';
import AppName from './app/index';
AppRegistry.registerComponent(appName, () => AppName);
Run Code Online (Sandbox Code Playgroud)
Ale*_*edi 11
好吧,我解决了所有的错误加入@babel/runtime
,现在的应用程序工作在DEBUG
和RELEASE
太.
这里配置正确:
的package.json
...
"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"
}
...
Run Code Online (Sandbox Code Playgroud)
.babelrc
{
"presets": [
"react-native"
],
"plugins": [
["@babel/plugin-proposal-decorators", { "legacy": true }],
["@babel/plugin-transform-runtime", {
"helpers": true,
"polyfill": false,
"regenerator": false
}]
]
}
Run Code Online (Sandbox Code Playgroud)
谢谢@Hkan.
归档时间: |
|
查看次数: |
4497 次 |
最近记录: |