Node-RED を別ポート・別フローで個別実行したいときに行っている設定メモ

Node-RED を別ポート・別フローで個別実行したいときに行っている設定メモです。

前提

image

Node-RED が Node.js npm でグローバルインストールされている前提です。

継続的に試しているプロジェクトをNode-RED を別ポート・別フローで個別実行するための設定です。

フォルダを作って Visual Studio Code で開く

image

どこかにプロジェクトのフォルダを作っておきます。

image

そのフォルダで起点に Visual Studio Code を開きます。 code -n <対象フォルダ> でコマンド実行すると楽にフォルダ指定できるのでおススメ。

プロジェクトと設定を入れる node-red_dir フォルダの準備

Visual Studio Code でターミナルを開いて作業進めていきます。

npm init -y

で、npm プロジェクトの初期設定をします。

image

プロジェクトフォルダ直下に package.json ができたら、同じ階層に node-red_dir フォルダを作ります。これが node-red の設定をすべて入れるフォルダになります。これで、このフォルダ内の設定やフローを使えば、別ポート・別フローが実現できます。

Node-RED 設定ファイル settings.js のファイルを取ってくる

通常、設定ファイルはグローバルインストールされているものと共通です。ただ、各プロジェクトごとに設定を調整したいこともあるでしょう。なので、Node-RED 設定ファイル settings.js の原本を取ってきます。

設定ファイル : Node-RED日本ユーザ会

こちらにあるとおりで、原本は 2021/4 現在 こちら にあります。実際に使うデータはさらに raw な状態なデータはこちら にあります。raw なデータのほうをコピーします。

image

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

で起動してみましょう。

image

起動して、まず、 node-red_dir フォルダの中に色々と作られました。

image

適当にフローをつくってデプロイをしてみます。

image

無事フローファイルも、マシン名を引き継いで作成されました。

これでガシガシこのプロジェクト内で閉じた形で Node-RED が作業が進められます!