Я пытаюсь скомпилировать свое приложение React Native и получаю следующую ошибку:
SyntaxError: C: \ Users \ Ori \ Desktop \ Projects \ React \ my-app \node_modules @ react-native-community \ google-signin \ src \ GoogleSignin.js: поддержка экспериментального синтаксиса classProperties в настоящее время не включена (8:16)
Add @ babel / plugin-proposal-class-properties (https://git.io/vb4SL) в разделе 'plugins' вашей конфигурации Babel, чтобы включить преобразование.
Если я правильно понимаю, так как это реагирующий нативныйПриложение .babelrc файл игнорируется, но есть еще несколько способов преодолеть это. Я видел несколько решений в Интернете, но ни одно из них не работает для меня.
Я пробовал:
- добавление файла babel.config.js в ту же папку, что и package.json:
module.exports = {
presets: [
'@babel/preset-env',
'@babel/preset-react',
'@babel/preset-typescript'
],
plugins: [
'@babel/plugin-proposal-class-properties'
]
};
- добавление конфигурации babel в package.json
{
presets: [
'@babel/preset-env',
'@babel/preset-react',
'@babel/preset-typescript'
],
plugins: [
'@babel/plugin-proposal-class-properties'
]
}
- добавление незакрепленного свойства в плагины:
"plugins": [
[
"@babel/plugin-proposal-class-properties",
{
"loose": true
}
]
]
, похоже, ничего не работает.
Мой код:
package.json:
{
"name": "my-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"@material-ui/core": "^4.5.0",
"@material-ui/icons": "^4.4.3",
"@react-native-community/google-signin": "^3.0.1",
"jquery": "^3.4.1",
"react": "^16.10.2",
"react-dom": "^16.10.2",
"react-ga": "^2.7.0",
"react-native-google-signin": "^2.1.0",
"react-scripts": "3.2.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"babel": {
"presets": [
"@babel/preset-env",
"@babel/preset-react"
],
"plugins": [
[
"@babel/plugin-proposal-class-properties",
{
"loose": true
}
]
]
},
"devDependencies": {
"@babel/cli": "^7.6.4",
"@babel/core": "^7.6.4",
"@babel/plugin-proposal-class-properties": "^7.5.5"
}
}
babel.config.js:
module.exports = {
plugins: [
['@babel/plugin-proposal-decorators', { legacy: true }],
['@babel/plugin-proposal-class-properties', { loose: true }],
'@babel/plugin-syntax-dynamic-import',
'@babel/plugin-transform-regenerator',
[
'@babel/plugin-transform-runtime',
{
helpers: false,
regenerator: true,
},
],
],
presets: [
"@babel/preset-flow",
'module:metro-react-native-babel-preset',
],
};
Если кто-то может осветитьсвет в вопросе, что было бы здорово, спасибо!