Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

New react-native app has 'TypeError: babelHelpers.typeof is not a function' [iOS]

A new project created with the latest version of react-native throws javascript error while running(/debugging). Tested this on simulator.

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

Installed the react-native client today & created the app using

react-native init AwesomeProject

App version:

react-native-cli: 0.1.10
react-native: 0.20.0
node version: v5.6.0
like image 315
Prasanth Avatar asked Feb 22 '16 20:02

Prasanth


4 Answers

Here's a comment explaining the issue:

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

To summarize:

Babel presets 'stage-0' through 'stage-3' contain 'async-to-generator', which is not not necessary for react-native itself.

The solution is to use the unofficial babel preset 'react-native-stage-0'

Example:

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

.babelrc

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

or with decorator support

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

Empty cache and Restart

watchman watch-del-all

./node_modules/react-native/packager/packager.sh start --reset-cache
like image 143
Kyle Finley Avatar answered Nov 02 '22 21:11

Kyle Finley


Solved adding babel stage-1 and react-native preset's to .babelrc in the project's root folder.

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

More details here: https://github.com/facebook/react-native/issues/5747

like image 44
Samuel Barbosa Avatar answered Nov 02 '22 19:11

Samuel Barbosa


To solve the problem, I renamed a .babelrc file in a parent directory, then ran ./node_modules/react-native/packager/packager.sh start --reset-cache

like image 24
Adam Loving Avatar answered Nov 02 '22 21:11

Adam Loving


One issue is that if there is a .babelrc in a parent directory to your app, the packager will read that and it will cause this exact error. One way around it is to add a .babelrc file in your project:

{
  "presets": ["react-native"]
}
like image 30
Tom Goldenberg Avatar answered Nov 02 '22 20:11

Tom Goldenberg