🥟
Node-RED-Desktop (on Mac) でノード追加に失敗してしまうときの対策
だいたいの場合は node
のPATHが通っていないことが原因であります。
公式Wiki: Mac: PATH settings example in launchd
こちらではplistを作って読み込ませる方法が書いてあるが、おそらく再起動させないといけない?(それすら面倒で未検証)のか、これをやってもうまくいかなかったので、もっとズボラに解消する方法のメモ。
node
の位置を確認
1. インストール済みの Terminalを開き、 which node
を実行する。
$ which node
/Users/hogehoge/.nodebrew/current/bin/node
nodebrewでインストールされた場合は上記のようなPATHになっているはず。このPATHをコピーしておく。そもそもNode.jsが未インストールの場合は予めインストールしておくこと。
2. launchctlを使って一時的にPATHを通す
# 以下行のPATH以降の "/Users/hogehoge/.nodebrew/current/bin" は手順1で得られた自身のPATHに置き換えること
$ launchctl setenv PATH /Users/hogehoge/.nodebrew/current/bin:$PATH
参考: macOSでGUIアプリの環境変数を設定する方法探求
3. 同じTerminalからNode-RED-Desktopを起動
だいたいの場合で /Applications
直下だと思いますが違う場合は適宜あわせてください。
$ open /Applications/Node-RED-Desktop.app
4. 以下に示すnode実行確認フローをインポート&デプロイして、デバッグタブにエラーが出ないことを確認する
[{"id":"7a4efcce.89b8c4","type":"inject","z":"c37c6de7.10798","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":140,"y":60,"wires":[["d1acddb8.e8361"]]},{"id":"d1acddb8.e8361","type":"exec","z":"c37c6de7.10798","command":"node -v","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"","x":320,"y":60,"wires":[["9483c8bb.2c7d58"],["9483c8bb.2c7d58"],["9483c8bb.2c7d58"]]},{"id":"9483c8bb.2c7d58","type":"debug","z":"c37c6de7.10798","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":490,"y":60,"wires":[]}]
上記JSONはNode-RED-Desktop公式の「ノードの追加に失敗するときは・・・」で示されているフローです。
上記のような感じになっていればOKです。
このまま終了せず、追加したいノードをインストールしてしまいましょう。
終了させて普通に起動するとまた
node
のPATH通ってない状態になるが、そもそもノード追加時ぐらいしかnode
使わなさそうなので一旦はこれで大丈夫かも
Discussion