react-native: CLI: unexpected token '?'
Description
Hi guys,
just created a new project and it is throwing this error when doing archive on iOS and when doing build on Android
Showing Recent Messages
- /usr/local/bin/node /Users/hardik/Documents/GitHub/ReactNApp/node_modules/react-native/cli.js bundle --entry-file index.js --platform ios --dev false --reset-cache --bundle-output /Users/hardik/Library/Developer/Xcode/DerivedData/ArcedirovNew-cdkamivgjmneqpgzgxxedswjccki/Build/Intermediates.noindex/ArchiveIntermediates/ReactNApp/BuildProductsPath/Release-iphoneos/main.jsbundle --assets-dest /Users/hardik/Library/Developer/Xcode/DerivedData/ReactNApp-cdkamivgjmneqpgzgxxedswjccki/Build/Intermediates.noindex/ArchiveIntermediates/ArcedirovNew/BuildProductsPath/Release-iphoneos/ArcedirovNew.app
/Users/hardik/Documents/GitHub/ReactNApp/node_modules/@react-native-community/cli/build/index.js:156
cmd.option(opt.name, opt.description ?? '', opt.parse || (val => val), typeof opt.default === 'function' ? opt.default(rest[0]) : opt.default);
Please advice how to fix this. thanks
Version
0.70.1
Output of npx react-native info
System: OS: macOS 13.0 CPU: (8) x64 Intel® Core™ i5-1038NG7 CPU @ 2.00GHz Memory: 365.09 MB / 16.00 GB Shell: 5.8.1 - /bin/zsh Binaries: Node: 16.15.0 - ~/.nvm/versions/node/v16.15.0/bin/node Yarn: 1.17.3 - /usr/local/bin/yarn npm: 8.5.5 - ~/.nvm/versions/node/v16.15.0/bin/npm Watchman: 2022.02.28.00 - /usr/local/bin/watchman Managers: CocoaPods: 1.11.3 - /usr/local/bin/pod SDKs: iOS SDK: Platforms: DriverKit 21.4, iOS 16.0, macOS 12.3, tvOS 16.0, watchOS 9.0 Android SDK: API Levels: 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 Build Tools: 29.0.2, 29.0.3, 30.0.1, 30.0.2, 30.0.3, 31.0.0, 32.0.0, 33.0.0 System Images: android-21 | Google APIs Intel x86 Atom, android-22 | Google APIs Intel x86 Atom, android-23 | Google APIs Intel x86 Atom, android-23 | Google APIs Intel x86 Atom_64, android-24 | Android TV Intel x86 Atom, android-24 | Intel x86 Atom, android-24 | Google Play Intel x86 Atom, android-25 | Google APIs ARM EABI v7a, android-25 | Google APIs Intel x86 Atom, android-25 | Google Play Intel x86 Atom, android-26 | Google Play Intel x86 Atom, android-27 | Intel x86 Atom, android-27 | Intel x86 Atom_64, android-27 | Google APIs Intel x86 Atom, android-27 | Google Play Intel x86 Atom, android-28 | Intel x86 Atom_64, android-28 | Google APIs Intel x86 Atom, android-28 | Google Play Intel x86 Atom, android-28 | Google Play Intel x86 Atom_64, android-29 | Google APIs Intel x86 Atom, android-29 | Google APIs Intel x86 Atom_64, android-29 | Google Play Intel x86 Atom, android-29 | Google Play Intel x86 Atom_64, android-30 | Google Play Intel x86 Atom, android-31 | Google Play Intel x86 Atom_64, android-N | Android Wear ARM EABI v7a, android-N | Android Wear Intel x86 Atom, android-N | Intel x86 Atom, android-N | Intel x86 Atom_64 Android NDK: 21.3.6528147 IDEs: Android Studio: 2021.3 AI-213.7172.25.2113.9014738 Xcode: 14.0/14A309 - /usr/bin/xcodebuild Languages: Java: 18.0.2 - /usr/bin/javac npmPackages: @react-native-community/cli: Not Found react: 18.1.0 => 18.1.0 react-native: 0.70.1 => 0.70.1 react-native-macos: Not Found npmGlobalPackages: react-native: Not Found
Steps to reproduce
Trying to build on Android Archive on iOS for app store upload
Snack, code example, screenshot, or link to a repository
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Reactions: 8
- Comments: 21 (2 by maintainers)
Update note js to 16 resolve this problem
Also seeing this exact issue when trying to archive app in xcode after upgrading RN from 0.69.4 to 0.70.1
Node 16 is installed via nvm. Everything worked perfectly until now.
EDIT: Solved by
ln -s $(which node) /usr/local/bin/node
in a sh shellI had the exact same issue. Running
npx react-native run-android
worked fine. Opening the upgraded project in Android Studio on my Ubuntu 22.04 machine resulted in the mentioned error.In my case, I figured out, that i had two versions of node installed:
Gradle seemed to use the system-wide Node 12 from /usr/bin/node, because it doesn’t pick up the NVM Paths. So i removed it from the system via
apt remove nodejs
.As expected, opening the project again in Android Studio now resulted in an error, because node was not found:
Caused by: java.io.IOException: Cannot run program "node" (in directory "/home/chris/documents/my-app/android"): error=2, File or directory not found
Finally I manually linked the “system node binary” to my NVM installed version:
ln -s $(which node) /usr/bin/node
Now my project is building fine. Maybe that helps.
Update to NodeJS 16 is the solution for
SyntaxError: Unexpected token '?'
and not i am able to build the App using XCode.I also ran into this! The issue at least in my case was the node export was pointing to the default installed version on the Mac, NOT the nvm managed version. On iOS this can be seen by a log
Node found at: ${NODE_BINARY}
. This was due to not having a .xcode.env file (whoops RN updating and missed this) and not having my NVM_DIR set in my bash path settings (since Xcode uses bash instead of zsh), which I did via these instructions. This might not be the exact issue observed here, but maybe it helps somebody!I am getting this Error in Xcode while building & Archive.
Output of
npx react-native info
Try and it may work(node v18.19.1):
this solved it for me, thank you