Node-RED を別ポート・別フローで個別実行したいときに行っている設定メモです。
前提
Node-RED が Node.js npm でグローバルインストールされている前提です。
継続的に試しているプロジェクトをNode-RED を別ポート・別フローで個別実行するための設定です。
フォルダを作って Visual Studio Code で開く
どこかにプロジェクトのフォルダを作っておきます。
そのフォルダで起点に Visual Studio Code を開きます。 code -n <対象フォルダ>
でコマンド実行すると楽にフォルダ指定できるのでおススメ。
プロジェクトと設定を入れる node-red_dir フォルダの準備
Visual Studio Code でターミナルを開いて作業進めていきます。
npm init -y
で、npm プロジェクトの初期設定をします。
プロジェクトフォルダ直下に package.json ができたら、同じ階層に node-red_dir
フォルダを作ります。これが node-red の設定をすべて入れるフォルダになります。これで、このフォルダ内の設定やフローを使えば、別ポート・別フローが実現できます。
Node-RED 設定ファイル settings.js のファイルを取ってくる
通常、設定ファイルはグローバルインストールされているものと共通です。ただ、各プロジェクトごとに設定を調整したいこともあるでしょう。なので、Node-RED 設定ファイル settings.js の原本を取ってきます。
こちらにあるとおりで、原本は 2021/4 現在 こちら にあります。実際に使うデータはさらに raw な状態なデータはこちら にあります。raw なデータのほうをコピーします。
node-red_dir
フォルダに settings.js
として保存します。
package.json の scripts に書き加える
ということで node-red_dir
を設定フォルダとして別ポート・別フローで起動できる npm run
コマンドを作ります。今回は 18801 ポートとします。
node-red -p 18801 -u ./node-red_dir -s ./node-red_dir/settings.js
コマンドのパラメータ を参考にしてこのようなコマンドになります。
{ "name": "sample", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "node-red": "node-red -p 18801 -u ./node-red_dir -s ./node-red_dir/settings.js" }, "keywords": [], "author": "", "license": "MIT" }
たとえば、このように package.json の scripts 部分に書き加えます。
動かしてみる
これで準備は完了です。
npm run node-red
で起動してみましょう。
起動して、まず、 node-red_dir フォルダの中に色々と作られました。
適当にフローをつくってデプロイをしてみます。
無事フローファイルも、マシン名を引き継いで作成されました。
これでガシガシこのプロジェクト内で閉じた形で Node-RED が作業が進められます!