forwardRef не является функцией в buildReactRelayContainer при использовании babel7 - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь перейти на Babel 7 в приложении переднего плана, используя React 15.6.2 и Relay 1.6.2

Пакет веб-пакета успешно собирается.

Однако я получаю следующееконсольная ошибка в браузере.

webpack_require (...). forwardRef не является функцией buildReactRelayContainer

Я использую webpack 3.12.0

И иметь babel-plugin-relay в dev-зависимости, установить в верхней части плагинов в .babelrc и установить в верхней части списка плагинов в веб-пакете.

Обратите внимание на этоЭтап I не может перейти на React 16 из-за библиотеки, которая использует устаревшую propTypes из React 15

.babelrc

{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-react"
  ],
  "sourceMaps": true,
  "plugins": [
    "relay",
    "babel-plugin-ramda",
    "@babel/plugin-syntax-dynamic-import",
    "@babel/plugin-syntax-import-meta",
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-proposal-json-strings",
    [
      "@babel/plugin-proposal-decorators",
      {
        "legacy": true
      }
    ],
    "@babel/plugin-proposal-function-sent",
    "@babel/plugin-proposal-export-namespace-from",
    "@babel/plugin-proposal-numeric-separator",
    "@babel/plugin-proposal-throw-expressions",
    "@babel/plugin-proposal-export-default-from",
    "@babel/plugin-proposal-logical-assignment-operators",
    "@babel/plugin-proposal-optional-chaining",
    [
      "@babel/plugin-proposal-pipeline-operator",
      {
        "proposal": "minimal"
      }
    ],
    "@babel/plugin-proposal-nullish-coalescing-operator",
    "@babel/plugin-proposal-do-expressions",
    "@babel/plugin-proposal-function-bind"
  ]
}

webpack

...
  {
    test: /\.js$/,
    exclude: /node_modules/,
    use: {
      loader: 'babel-loader',
      options: {
        presets: [
          "@babel/preset-env",
          "@babel/preset-react",
          {
            "plugins": [
              ["relay", {"schema": "./graphql_schema_builds/private/venue/schema.graphql"}],
              "ramda"
            ]
          }
        ]
      }
    }
  },
...

1 Ответ

0 голосов
/ 08 ноября 2018

вы пытаетесь смешать вещи, которые не очень хорошо играют вместе.Лучше всего обновиться до последней версии React (16.6 ~) и до последней версии веб-пакета (4.3.0).Они будут хорошо играть с Babel 7. Это будет радикальное изменение, но стоит обновлений!В настоящее время я обновляю рабочий процесс React, который я создал в прошлом году и который первоначально использовал webpack 3.6, Babel 6+ и React <16.6, но когда я создал новое приложение React, в которое был добавлен React 16.6 ~, а также webpack 4, япытался реализовать Babel со старым именованием пакетов, он не работал.Мой конфиг webpack тоже не работал.Я должен был сделать некоторые серьезные изменения.Вот ссылка на мою обновленную презентацию / документацию репо рабочего процесса React: <a href="https://github.com/interglobalmedia/react-workflow-updated-2018" rel="nofollow noreferrer">https://github.com/interglobalmedia/react-workflow-updated-2018 Обновление еще не завершено, но вы можете следить за моим прогрессом, если хотите!Это должно быть завершено очень скоро!

...