Ошибка неперехваченной ссылки: требование не определено в React native 0.59.5

#javascript #react-native

#javascript #react-native

Вопрос:

После обновления до React Native 0.59.5 я получаю:

 Uncaught reference error: require is not defined
  

babel.config.js

 module.exports = {
  presets: [
    'module:metro-react-native-babel-preset',
    '@babel/preset-flow',
    [
      '@babel/preset-env',
      {
        targets: {
          esmodules: true,
        },
      },
    ],
    'airbnb',
  ],
  plugins: [
    'transform-class-properties',
    ['@babel/plugin-proposal-decorators', { legacy: true }]
  ],
};
  

Узел: 8.10.0
npm: 5.6.0
React native: 0.59.5

введите описание изображения здесь

Комментарии:

1. Проверьте это, если вы еще этого не сделали: github.com/facebook/react-native/issues/22522

2. У меня даже нет env: { development } , есть ли что-нибудь еще, что я должен изменить?

Ответ №1:

Попробуйте выполнить следующую конфигурацию babel и не забудьте установить необходимые библиотеки, если они отсутствуют:

 module.exports = {
  presets: ["@babel/preset-flow", "module:metro-react-native-babel-preset"],
  plugins: [
    ["@babel/plugin-proposal-decorators", { legacy: true }],
    ["@babel/plugin-transform-flow-strip-types"],
    ["babel-plugin-react-native-nodeify-hack"],
    "@babel/plugin-syntax-dynamic-import",
    [
      "@babel/plugin-proposal-class-properties",
      {
        loose: true
      }
    ],
    "@babel/plugin-transform-regenerator",
    [
      "@babel/plugin-transform-runtime",
      {
        helpers: false,
        regenerator: true
      }
    ]
  ]
};
  

Затем вы можете очистить проект с помощью этой команды (только для IOS)

 watchman watch-del-all amp;amp; rm -rf node_modules amp;amp; npm install amp;amp; rm -rf $TMPDIR/haste-map-react-native-packager-* amp;amp; rm -rf $TMPDIR/react-native-packager-cache-* amp;amp; rm -rf $TMPDIR/metro-bundler-cache-* amp;amp; rm -rf ~/Library/Developer/Xcode/DerivedData amp;amp; pod deintegrate ios/{YOUR_PROJECT}.xcodeproj amp;amp; rm -rf ./ios/Pods amp;amp; pod install --project-directory=./ios/ amp;amp; rm -f /ios/build amp;amp; npm cache verify
  

А затем повторно запустите проект

 react-native run-ios
  

Надеюсь, это решит вашу проблему

Комментарии:

1. Спасибо, попробую это и опубликую результат.

2. Не забудьте изменить модуль деинтеграции ios/{YOUR_PROJECT}.xcodeproj в соответствии с вашим проектом. Желаю, чтобы это сработало для вас в конце