最新機能が入った開発版Node-REDを起動する

6年ほどNode-REDのコントリビュータをやっている横井です。メジャーバージョンのリリース計画を把握できているため、それに合わせて書籍執筆などの活動も効率良くできています。本記事では、そのノウハウと開発中のNode-REDを使う手順を紹介します。

Node-REDは、1年に1回メジャーバージョンがリリースされます。Node-REDの商用サービス提供者や、書籍などのドキュメント執筆者は、本メジャーリリースを意識しておく必要があります。よく把握せずに進めてしまい、「頑張ってサービスやドキュメントを公開したのに、すぐスクリーンショットや説明が古くなってしまった」という経験をされた方は多いでしょう。

# Node-REDのリリース計画
Node-REDのリリースは、下記のようなタイムラインとなっています。Node-REDのメジャーリリースが1年に1回されるのは、サポートするNode.jsが1年周期のためです。

![](https://nodered.org/about/releases/release-plan.png)

厳密には、偶数バージョンの安定版Node.jsが毎年4月30日にEOLを迎えるため、そのNode.jsをサポートしないNode-REDのメジャーリリースが4月30日を目標として公開されます(ただし、これまでの傾向では遅延して7月にリリースとなることが多いです)。そのため、サービスやドキュメントの公開まで数ヶ月ほど準備が必要な際、1〜4月位に準備するとすぐ使えないものになってしまうリスクがあります。

本リスクを最小化するスケジュールの一案は下記の通りです。

# スケジュール案

| # | 時期                  | やること                                        |
|---|-----------------------|-----------------------------------------------|
| 1 | 1〜4月                | 開発版のNode-REDを用いてドキュメント作成、サービス検証 |
| 2 | 4月〜メジャーリリースまで | ベータ版のNode-REDを用いて更新部分を確認、修正       |
| 3 | メジャーリリース後       | ドキュメントやサービスを正式公開 (初夏頃?)           |

このスケジュールで進めると、メジャー番号が最新のNode-REDのサービスやドキュメントを1年間提供できるようになります。1年後に次のメジャーバージョンがリリースされた後も、旧バージョンは1年間メンテナンスリリースが提供されるため、最大2年間使えることになります。
例えば、2023年4月30日にリリースされる予定のNode-RED v4.0を用いたサービスやドキュメントを2023年初夏に公開する場合、2024年4月30日にリリースされるNode-RED v5.0まで古い感じがなく提供できます。その後、2025年6月30日のNode-RED v4.0のEOLまで使えるサービスやドキュメントとなります。

# 開発版のNode-REDの起動方法
ベータ版のNode-REDの利用方法については、[フォーラム](https://discourse.nodered.org/)でアナウンスされるため、それに従う形となります。一方、開発版のNode-REDの起動方法は、あまり知られていないため、以降で手順を説明します。

### 1. Node.jsをインストール
WindowsやmacOSの場合は、Node.jsのサイト( https://nodejs.org/ja/ )からインストーラをダウンロードしてインストールします。UbuntuなどのLinux環境の場合は、Node.jsのサイトからリンクされている[GitHubリポジトリ](https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions)記載のコマンドでインストールします。

Node.jsのバージョンは、偶数番号の最新バージョンを選択すると良いでしょう。

### 2. Gitをインストール
Windowsの場合は、Gitのサイト( https://git-scm.com/ )からインストーラをダウンロードしてインストールします。

### 3. Node-REDのリポジトリをクローン
コマンドプロンプトまたはターミナルを開き、以下のコマンドを実行してGitHub上のリポジトリからNode-REDのソースコードを取得します。
```
git clone https://github.com/node-red/node-red.git
cd node-red
```
ソースコード取得後は、cdコマンドでNode-REDのフォルダに移動します。

### 4. 開発版のブランチに変更
Node-REDのリポジトリでは、リリース済のNode-REDのソースコードがmainブランチに入っています。一方、次のリリースで提供される新機能が入った開発版のソースコードはdevブランチに格納されています。
```
git checkout dev
```
今回は開発版を用いたいため、上記のコマンドでdevブランチに切り替えます。

### 5. 依存モジュールを取得
以下のコマンドを実行して依存モジュールをダウンロードします。少し時間がかかります。
```
npm install
```

### 6. ビルド
次に以下のコマンドでNode-REDのビルドを行います。本コマンドによってブラウザに表示するフローエディタのコードが生成されます。
```
npm run build
```

### 7. 起動
最後に、以下のコマンドでNode-REDを起動します。
```
npm start
```
Node-REDが起動した後は、ブラウザから http://localhost:1880 にアクセスすると、開発中のNode-REDフローエディタにアクセスできるでしょう。メニューを見るとまだリリースされていないバージョン「v3.1.0-beta.0」が表示されていますね!

![Screenshot 2022-12-17 at 11.03.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/8e3e9cff-d108-3b72-ab1b-fbd8c46c840c.png)

開発版Node-REDには、[マイルストーン](https://github.com/node-red/node-red/milestones)に掲載されている最新機能が日々追加されています。例えばフローエディタには、日本のNode-REDユーザ企業が集まるNode-RED User Group Enterpriseの活動で@utaaniさんが提案された「ノードやグループをハイライト表示できるリンク発行ボタン」も追加されています。

![Screenshot 2022-12-17 at 11.41.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/f1f7fd7b-4b9d-3ffc-489a-f45863917a72.png)

# 最後に
実際にNode-REDの環境を用意する際は、Node.js、OS、ノード部品などNode-RED以外のソフトウェアコンポーネントにおいても、適切なバージョンを選択する必要があるため、さらに難易度が高まります。開発コミュニティに参加するといつ何の機能が作られるか分かり、適切なリリースを採用できるようになります。そのため、ぜひNode-REDの開発に参加しましょう。