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
を試みましたが、それでも問題は解決しませんでした。
シェルスクリプトの先頭に. ~\.bash_profile
を追加することで、この問題を解決しました。
この問題は、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を再起動して再試行してください)。
ノードパスをビルドフェーズ/バンドルに追加Reactネイティブコードとイメージの設定
ビルドフェーズでシェルスクリプトの先頭に. ~/.nvm/nvm.sh
を追加して解決しました
私にとって、これを/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がインストールされているすべてのユーザーで機能するようになります。
このエラーを検索している間、これがグーグルのトップの結果であることを見て、以下は私のために働いた唯一のものです。
ノード(以前はNode Webサイトからpkgでインストールされていた)をアンインストールし、nvmをアンインストールして、Brewでノードを再インストールする必要がありました。
リンク 詳細については。