web-dev-qa-db-ja.com

間違ったnode.jsバージョンを使用しているxcode

React Native。react-native init XXXを使用して新しいプロジェクトを作成しました。xcodeprojを起動すると、次のようなエラーが発生しました。

  const setupEnvScript = /^win/.test(process.platform)
  ^^^^^
SyntaxError: Use of const in strict mode.
    at Module._compile (module.js:439:25)
    at Module._extensions..js (module.js:474:10)
    at Object.require.extensions.(anonymous function) [as .js] (/Users/allanhahaha/Documents/Seat/getseat/SeatApp/node_modules/react-native/node_modules/babel-core/lib/api/register/node.js:214:7)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/allanhahaha/Documents/Seat/getseat/SeatApp/node_modules/react-native/cli.js:15:18)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)

私の調査によると、これはnode.jsバージョンの問題です。v.4.0+を使用する必要があります。

Node.jsのバージョンを管理するためにNVMを使用しています。 通常のターミナルウィンドウで、私はこれを持っています:

$ node --version
v5.1.0

しかし、xcodeで開始シェルスクリプトを実行すると、別のバージョンv0.10.40が使用されており、xcodeもnvmコマンドを認識していません。

問題は、xcodeがnvmで設定したのと同じバージョンを取得できるようにMacをどのように構成する必要があるかということです

ありがとうございました!


更新:xcodeによって実行されたシェルスクリプトでsource自分の~/.bash_profileを試みましたが、それでも問題は解決しませんでした。

22
Allan Jiang

シェルスクリプトの先頭に. ~\.bash_profileを追加することで、この問題を解決しました。

7
Allan Jiang

この問題は、react-native-cliを間違ったNode(したがってnpm)バージョンでインストールした場合に発生するようです。

最初にxcodeをシャットダウンし、実行中の古いノードプロセスがないことを確認しましょう。これが必要かどうかはわかりませんが、次のことを確認することをお勧めします。

$ ps -e|grep node
$ kill {process number(s) here}

次に、デフォルトのnvmノードバージョンを使用するバージョンに設定します。次に例を示します。

$ nvm alias default 6.6.0

次に、ターミナルを再起動し、ノードのバージョンがデフォルトで必要なバージョンになっていることを確認します。

$ node -v
v6.6.0

ここで、新しいノードバージョンをアクティブにしてreact-native-cliを再インストールします(npmバージョンに影響します)。

$ npm install -g react-native-cli

現在実行中$ react-native run-ios適切なバージョンでxcodeを実行する必要があります! (そうでない場合は、必ずターミナル/ xcodeを再起動して再試行してください)。

12
Cihan Bebek

ノードパスをビルドフェーズ/バンドルに追加Reactネイティブコードとイメージの設定

設定

6
Can Gülse

ビルドフェーズでシェルスクリプトの先頭に. ~/.nvm/nvm.shを追加して解決しました

2
pingo

私にとって、これを/etc/profileまたは~/.profileに追加するとうまくいきました。

export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"  

これが必要な理由は、XCodeがデフォルトで/bin/shを使用し、指定したファイルからプロファイルをロードするためです。

注:/etc/profileを変更するには、Sudoを使用する必要があります。 MacOS X 10.15 Catalinaでも、システムディレクトリが読み取り専用になっていると思うので、これが可能かどうかはわかりません。ただし、ここで設定できる場合は、nvmがインストールされているすべてのユーザーで機能するようになります。

1
scaly

このエラーを検索している間、これがグーグルのトップの結果であることを見て、以下は私のために働いた唯一のものです。

ノード(以前はNode Webサイトからpkgでインストールされていた)をアンインストールし、nvmをアンインストールして、Brewでノードを再インストールする必要がありました。

リンク 詳細については。

0
Ciriac