Новое реагирующее нативное приложение имеет "TypeError: babelHelpers.typeof не является функцией" [iOS]

Новый проект, созданный с использованием последней версии реагирующей нативной ошибки, генерирует ошибку javascript во время работы (/debugging). Проверял это на симуляторе.

[fatal][tid:main] TypeError: babelHelpers.typeof is not a function. (In 'babelHelpers.typeof(target)', 'babelHelpers.typeof' is undefined)

Установил сегодня реагирующий клиент и создал приложение, используя

react-native init AwesomeProject

Версия приложения:

react-native-cli: 0.1.10
react-native: 0.20.0
node version: v5.6.0

7 ответов

Вот комментарий, объясняющий проблему:

https://github.com/facebook/react-native/issues/4844

Подвести итоги:

Вавилонские пресеты 'stage-0' через 'stage-3' содержать 'async-to-generator', что не является обязательным для самой реакции-родной.

Решение заключается в использовании неофициальной предустановки Babel 'react-native-stage-0'

Пример:

npm install babel-preset-react-native-stage-0 --save-dev

.babelrc

{
  "presets": ["react-native-stage-0"]
}

или с поддержкой декоратора

{
  "presets": ["react-native-stage-0/decorator-support"]
}

Пустой кеш и перезагрузка

watchman watch-del-all

./node_modules/react-native/packager/packager.sh start --reset-cache

Решено добавить babel stage-1 и response-native предустановки в.babelrc в корневой папке проекта.

{
  "presets": ["stage-1", "react-native"],
}

Более подробная информация здесь: https://github.com/facebook/react-native/issues/5747

Чтобы решить эту проблему, я переименовал файл.babelrc в родительский каталог, затем запустил ./node_modules/react-native/packager/packager.sh start --reset-cache

Одна проблема заключается в том, что если есть .babelrc в родительском каталоге вашего приложения упаковщик прочитает это, и это вызовет именно эту ошибку. Один из способов обойти это добавить .babelrc файл в вашем проекте:

{
  "presets": ["react-native"]
}

Я обновил до недавно выпущенного react-native@0.21 и проблема ушла. Я не уверен, означает ли это, что проблема с корнем была решена, так как я видел неустойчивый успех с другими "исправлениями".

Дважды проверьте путь импорта / имена файлов, так как они чувствительны к регистру

Обычно это происходит из-за зависимости npm от стороннего производителя, для которой в файле package.json заданы предустановки.babelrc или babel es2015.

Есть исправление: https://github.com/facebook/react-native/pull/11093

Другие вопросы по тегам