パッケージング

ノードはモジュールとしてパッケージ化し、npmリポジトリに公開することができます。 これにより、インストールするのに必要な依存関係と共にインストールが容易になります。

ディレクトリ構造

以下に、ノードパッケージの典型的なディレクトリ構造を示します:

- package.json
- sample
   |-sample.html
   |-sample.js
   \-icons
      \-sample.png
- README.md
- LICENSE

パッケージ内で使用されるディレクトリ構造に厳密な要件はありません。 パッケージに複数のノードが含まれている場合、それらすべてが同じディレクトリに存在させることもできますが、 それぞれを独自のサブディレクトリに配置することもできます。

ノードモジュールをローカルでテストする

ノードモジュールをローカルでテストするには、nmp linkコマンドを使うことができます。 これにより、ローカルディレクトリでノードを開発し、 あたかもnpmインストールされているかのようにローカルのNode-REDインストールにリンクさせることができます。

  1. ノードのpackage.jsonファイルを含むディレクトリで、以下を実行します。: sudo npm link
  2. あなたのnode-redユーザディレクトリでは、通常は~/.node-red、で以下を実行します。: npm link <name of node module>

これにより、2つのディレクトリ間に適切なシンボリックリンクが作成され、 Node-REDは起動時にノードを検出します。 Node-REDを再起動するだけで、ノードのファイルに対する変更を取得することができます。

package.json

通常の入力と並んで、package.jsonファイルには、 モジュールが提供するノードを.jsファイルへのポインタによって認識するような node-redエントリが含まれていなければなりません。

ノードが他のnpmモジュールの依存関係を持つ場合、 それらはdependenciesプロパティに含まれていなければなりません。

npmリポジトリ内でノードを発見できるようにするため、 keywordsプロパティにnode-redを含める必要があります。 これにより、キーワードで検索する際にパッケージが確実に表示されます。

Note: ノードが安定して正しく動作し、 他の人がノードを利用できるように充分に文書化されるまで `node-red`キーワードを追加しないでください。
{
    "name"         : "node-red-contrib-samplenode",
    "version"      : "0.0.1",
    "description"  : "A sample node for node-red",
    "dependencies": {
    },
    "keywords": [ "node-red" ],
    "node-red"     : {
        "nodes": {
            "sample": "sample/sample.js"
        }
    }
}

命名規則

ノードモジュールはNode-REDプロジェクトによってメンテナンスされていないことを明確にするため、 node-red-contrib-を名前のプレフィックスとして使用する必要があります。 あるいは、node-redをプレフィックスとして使用しない任意の名前を使用することができます。

README.md

README.mdファイルには、 ノードの機能およびそれを機能させるために必要な前提条件を列挙します。 ノードのhtmlファイルの情報タブ部分に含まれていない追加の指示や、 それを使用している小さなサンプルフローを含めると 有意義かもしれません。

ファイルは、 GitHub flavoured markdownを利用してマークアップすべきです。

LICENSE

他の人が自分のコードで出来ることと出来ないことを知ることができるように、 ライセンスファイルを含めてください。

npmに公開する

npmリポジトリにパッケージを公開するためのガイドが数多くあります。 こちらに基本的な概要があります。

flows.nodered.orgに追加する

すべてのパッケージ要件が適切だった場合、 Node-RED Flow Libraryは数時間以内に作成したノードを自動的に登録します。 数時間を過ぎても表示されない場合、Node-REDフォーラム またはSlackで助言を求めることができます。