Новое реагирующее нативное приложение имеет "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