昨年末から G's Academy という自分のプロダクトを作れるようになろう的なスクールでプログラミングのチューターをしています。
チューターをしている中で意外なトラップを発見したのでメモとして残しておきます。
Mac デスクトップを iCloud 同期設定をしているとパスが通らない問題
Mac の iCloud でデスクトップの同期設定をしているマシンで作業ファイルをデスクトップに置いて作業していると諸々パスが上手く通らないケースが発生します。
例えば firebase-tool を npm install -g
でグルーバルインストールしているような時、デスクトップの作業ディレクトリで firebase
コマンドを叩いても irebase: command not found
になってしまうとか、npx create-react-app
で作成した React アプリで npm run start
した時にパッケージのエラーが表示されて起動しないとか、git をインストールしたのに git コマンドが無いと言われ続けるが発生しました。
原因としてはデスクトップが iCloud 同期されているので、ターミナルが今見ている作業ディレクトリがマシンのローカルなのか iCloud 上なのか判別できなくなて マシンローカルにインストールされている node や npm, homebrew などへのパスが通らない状態になってエラーが発生しているのかなと感じました。
自分がチューターをしていた中では npm まわりのエラーが殆どでしたが恐らくローカルマシンとのパスが通らなくなるので他の言語でも謎のエラーが発生するだろうなと思っています。
確か iCloud のデフォルトでデスクトップの同期が ON になっていたと思うので、特にプログラミングはじめました!プログラミング始めるために Mac 買いました!って方はハマる可能性の罠かなとも思います。
解決方法
解決方法はシンプルで「Macではデスクトップを開発ディレクトリにしない」(iCloud 同期してる場合)です。
Mac のデスクトップのフォルダを VSCode で開いていてターミナルでコマンド打ったらよく分からないエラーが出たという時は iCloud の同期を疑ってみてみてみてください。
おわり。
[参考]
これは PATH が通らないときの TIPS