react-native のMetro bundlerでNodeエラーが出るときの対処


概要

React Native開発をしているとMetro Bundlerが上がってきます。
このときに自動で立ち上がってくるTerminal上のMetroでエラーが出た時の対処方法のメモとなります。

対象読者

  • React Native v0.59.x >= 利用者

事象

React Native開発をしていると(古いバージョンでは)必ずMetro Bundlerのお世話になります。Metro Bundlerは react-native-clirun-iosコマンドを叩くなどすると上がってきます。

その際、新規PCで何気なく実行すると下記のエラーが出ました。

あれ?nodeがない?となりましたが、普段使いしているterminalで確認したところ下記の通り、nodeは入っていました。

$ node -v
v10.17.0

原因

NVMなどを使っていると、参照しているnodeはホームディレクトリ配下のことが多いです。
しかし、react-native run-iosで起動するターミナルが参照するNodeのPATHは/usr/local/bin/nodeのようです。

よって、自身が利用しているnodeのパスを確認して、/usr/local/bin/nodeへリンクを通してあげると解決します。

# nodeが存在することを確認できます
$ which node
/home/USERNAME/.nvm/versions/node/v10.17.0/bin/node

# 上記パスに対して、シンボリックリンクをはります
# $()とすることで()内コマンドの結果を利用できます
$ ln -s $(which node) /usr/local/bin/node

参考リンク