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

https://pasteboard.co/jF639A0h1o6b.png

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 8
  • Comments: 21 (2 by maintainers)

Most upvoted comments

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

  1. manually removing an old version of node (in /usr/local/bin/) that was apparently used by the sh shell (default shell used by xcode)
  2. linking the nvm node installation by running ln -s $(which node) /usr/local/bin/node in a sh shell

I 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:

  • System-wide Node 12 (!!) via package manager (/usr/bin/node)
  • Locally NVM managed Node 17.2.0 (~/.nvm/versions/node/v17.2.0/bin/node)

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.

/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);
                                          ^

SyntaxError: Unexpected token '?'
    at wrapSafe (internal/modules/cjs/loader.js:1072:16)
    at Module._compile (internal/modules/cjs/loader.js:1122:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
+ [[ '' != true ]]
+ cp /Users/saravanakumar/Library/Developer/Xcode/DerivedData/ReactNative-exomamucwknejgecicizjaevjbgd/Build/Products/Release-iphonesimulator/main.jsbundle /Users/saravanakumar/Library/Developer/Xcode/DerivedData/ReactNative-exomamucwknejgecicizjaevjbgd/Build/Products/Release-iphonesimulator/ReactNative.app/
cp: /Users/saravanakumar/Library/Developer/Xcode/DerivedData/ReactNative-exomamucwknejgecicizjaevjbgd/Build/Products/Release-iphonesimulator/main.jsbundle: No such file or directory
+ BUNDLE_FILE=/Users/saravanakumar/Library/Developer/Xcode/DerivedData/ReactNative-exomamucwknejgecicizjaevjbgd/Build/Products/Release-iphonesimulator/ReactNative.app/main.jsbundle
+ [[ false != true ]]
+ [[ ! -f /Users/saravanakumar/Library/Developer/Xcode/DerivedData/ReactNative-exomamucwknejgecicizjaevjbgd/Build/Products/Release-iphonesimulator/ReactNative.app/main.jsbundle ]]
+ echo 'error: File /Users/saravanakumar/Library/Developer/Xcode/DerivedData/ReactNative-exomamucwknejgecicizjaevjbgd/Build/Products/Release-iphonesimulator/ReactNative.app/main.jsbundle does not exist. This must be a bug with React Native, please report it here: https://github.com/facebook/react-native/issues'
error: File /Users/saravanakumar/Library/Developer/Xcode/DerivedData/ReactNative-exomamucwknejgecicizjaevjbgd/Build/Products/Release-iphonesimulator/ReactNative.app/main.jsbundle does not exist. This must be a bug with React Native, please report it here: https://github.com/facebook/react-native/issues
+ exit 2

Output of npx react-native info

info Fetching system and libraries information...
System:
    OS: macOS 12.6
    CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 72.03 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 16.15.1 - ~/.nvm/versions/node/v16.15.1/bin/node
    Yarn: 1.22.5 - /usr/local/bin/yarn
    npm: 8.11.0 - ~/.nvm/versions/node/v16.15.1/bin/npm
    Watchman: 2022.01.03.00 - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.11.2 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: DriverKit 21.4, iOS 15.5, macOS 12.3, tvOS 15.4, watchOS 8.5
    Android SDK:
      API Levels: 23, 26, 28, 30, 31, 33
      Build Tools: 22.0.1, 28.0.3, 29.0.2, 29.0.3, 30.0.2, 30.0.3, 31.0.0
      System Images: android-R | Google APIs Intel x86 Atom, android-R | Google Play Intel x86 Atom
      Android NDK: Not Found
  IDEs:
    Android Studio: 2020.3 AI-203.7717.56.2031.7678000
    Xcode: 13.4.1/13F100 - /usr/bin/xcodebuild
  Languages:
    Java: 11.0.13 - /Library/Java/JavaVirtualMachines/jdk-11.0.13.jdk/Contents/Home/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 18.2.0 => 18.2.0 
    react-native: ^0.70.1 => 0.70.1 
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Try and it may work(node v18.19.1):

  1. remove node_module, yarn install
  2. ./gradlew --stop
  3. ./gradlew clean & ./gradlew assembleRelease

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

1. manually removing an old version of node (in /usr/local/bin/) that was apparently used by the sh shell (default shell used by xcode)

2. linking the nvm node installation by running `ln -s $(which node) /usr/local/bin/node` in a sh shell

this solved it for me, thank you