Поддержка экспериментального синтаксиса classProperties в настоящее время не включена (8:16). Добавьте @ babel / plugin-offer-class-properties - PullRequest
0 голосов
/ 12 октября 2019

Я пытаюсь скомпилировать свое приложение 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',
    ],
};

Если кто-то может осветитьсвет в вопросе, что было бы здорово, спасибо!

...