Node-RED の Projects の機能で目についたものをつらつら書いてみる
- Node-RED Projects の公式説明ページ
1.まずは、Projects を有効にして、Node-RED の起動
- 下記のやり方は少し好みが入っているかも。
- 大事な部分は、
settings.js
のprojects: {enabled: true}
をtrue
に編集していところのみ。
echo '{}' > package.json
npm i -D node-red
ln -s node_modules/node-red/red.js red
- ベースとなる
settings.js
を編集する。 - 後から、ユーザディレクトリ内に作成された
settings.js
を編集しても良い。
vim node_modules/node-red/settings.js
-
settings.js
の編集部分とその前後のみを抜粋。
// Customising the editor
editorTheme: {
projects: {
// To enable the Projects feature, set this value to true
- enabled: false
+ enabled: true
}
},
- Node-RED 起動。
node red -u .
- http://localhost:1880 へアクセスすると、下記画面が表示される。
- とりあえず、
プロジェクトの作成
ボタンを押す。
- git の
ユーザ名
、Email
を入力する。
-
プロジェクト名
を入力する。 - 今回の例では、分かりやすくするため github のリポジトリ名にする名称を入力する。
- フローファイル名をデフォルトで
flow.json
が入力されているので、今回は、そのまま使用する。
- 暗号化を有効にするため、鍵を入力する。暗号化用の鍵はおそらくなんでもいい。
- 公式サイトにも説明されているが、認証情報ファイルもパブリックなリポジトリにプッシュするなら、暗号化は有効であるべき。
- Projects とは関係ないけど、複数人、複数箇所などで、フローを作成するときには、その環境毎に認証情報ファイルの内容を適用したいことがある。その場合は、認証情報じゃなくて、環境変数とかにしたいんだよな。ノードの中には、環境変数に対応したものもあって、それ見るとサイコーって感じる。
- 文章なんか読まずに
完了
を押す!
- 上記の通り Node-RED を起動していると、カレントディレクトリがユーザディレクトリになっていて、
projects
ディレクトリができているはずである。 - projects ディレクトリ配下の構成は以下の通り。
- README、フローファイル、認証情報ファイル、package.json が作成されている。
projects/
└── try-node-red-projects
├── README.md
├── flow.json
├── flow_cred.json
└── package.json
2.フローを作成し、コミットしてみる
- 適当に、以下のようなフローを作成してみる。
- 下記では、 http://localhost:1880/page にアクセスすると template に基づいたページが表示される。
- function や template ノードの中は適当に。
- フローを作成し、デプロイを行った後、サイドバー?の git タブ? へアクセスしてみると、ローカルの変更に、
flow.json
が入っている。 -
git status
みたいなものか。
- コミット履歴を覗くと、プロジェクトを作成した時のものが確認できる。
- 変更をコミット対象にして、そのままコミットしてみる。
- ローカルの変更欄で、
+ 全て
で対象に追加する。+
で個別に追加しても良い。 -
git add .
やgit add flow.json
か。 - 上記操作後、コミット対象に flow.json が入る。
- そうしたら、
コミット
を押す。
- テキストエリアにコミットメッセージを入力して
コミット
押す。 -
git commit -m 'add page'
か。
- ローカルの変更は、空になる。そりゃそうだ。
- コミット履歴が増える。そりゃそうだ。
- コミット履歴のリストからいずれかをクリックすると、詳細がぴょこっと生えてくる。
3.github へ push する
- プロジェクトの設定を開く。
-
プロジェクト
では、プロジェクト名や、READMEの内容が確認/編集できる。
- README の編集はこんな感じ。
-
依存関係
では、インストールしたノード一覧が確認/更新できる。
- github で、空のリモートリポジトリを作成する。
-
設定
では、フローファイル名や、ローカルブランチ、リモートブランチの設定が確認/編集/追加できる。 -
リモートを追加
を押す。
- 今回は、
リモート名
はデフォルトで入力されているorigin
のまま、URL は、https://github.com/user-name/repository-name
を入力する。末尾の.git
はあっても無くても良さげ?
- サイドバーに戻って、リモートの master ブランチを作成する。
-
↑プッシュ
だ!
- github の認証が要求される。
-
リトライ
押すと、(自分のPC環境では、一瞬、間があって、)完了する。
4.ブランチの作成
- 先程は master ブランチだったけど、ここで、ブランチの作成もできる。
- 下記の例では、
hogeb
という存在していないブランチ名を入力している。 -
ブランチの作成
と出てくるので、迷わずクリックする。
- できた〜!
-
hogeb
ブランチに有効
が表示されている状態のまま、フローに変更を加えて、コミット、プッシュを行っておく。 - ちなみに、
function
ノードのソースコードの diff も見れる!!!!!!!!!
5.github でプルリクとマージする
- おもむろに、プルリク作成する。
- 勢いで、マージする。
- Node-RED に戻って、下記ボタンを押す。(最新の状態になっていなければ。)
- コミット履歴に
↑0 ↓3
のような表示が確認できるはず。 -
↓プル
だ!
- こんな選択迫られるけど、
無視
で。
6.プロジェクトの取り込み
- 下記画面で、
プロジェクトのクローン
を押す。
- 自身の情報を入力する。
- はじめに、
GitリポジトリのURL
に、clone する URL を入力すれば、プロジェクト名
は自動で入力される。 - あれ? ここの
ユーザ名
とパスワード
ってなんだっけ? private リポジトリの場合? -
認証情報の暗号化キー
は、Node-RED で、プロジェクトを作成した時に入力している鍵を入力する。 -
プロジェクトをクローン
!
- 無事に取り込まれているよう。
- (認証情報ありのノードを含めておけばよかった。)
- 上記以外の機能は、確認できていない。ローカルの他の git クライアントか、github などのリモートリポジトリで操作して、push なり pull なりする必要がありそう。
- 機能紹介漏れてたら、教えて。
7.所感
- なんといっても、function も含めた diff が良いな。それに尽きる。
- Node-RED から離れず、git の基本操作が GUI できるのはやっぱ便利。
- 複数人でのフロー作成も改善要素多数。(複数人で作成なんてしない?)
- ま、使っていきましょー。