n8n – Community nodeの作り方

はじめに

こちらのドキュメントを参考にします。

n8n のコミュニティノードリポジトリに自作ノードを公開するための手順は以下の通りです:

  1. パッケージ名
    n8n-nodes- または @<scope>/n8n-nodes- で始める。例: n8n-nodes-weather
  2. キーワード
    n8n-community-node-package を package.json の keywords に含める。
  3. package.json の設定
    n8n 属性の中に自作ノードと認証情報を追加する(starter node の例を参照)。
  4. 動作確認
    Linter でチェックし、ローカルでテストして問題がないか確認する。
  5. 公開
    npm レジストリにパッケージを登録・公開する(詳細は npm の公式ドキュメント参照)。

👉 要するに、命名規則・package.json 設定・テスト・npm 公開が必須です。

手順

スターターノードをテンプレートレポジトリとして用意されています。このスターターリポジトリを基に、自分用のノードを開発し、npm に公開するのが公式の推奨プロセスです。

ここではデモ用に、https://github.com/s3lab-tech/n8n-nodes-sample レポジトリを作成しました。

開発中パッケージをビルドする

distディレクトリへ出力される

% cd /home/myhome/dev
% git clone https://github.com/s3lab-tech/n8n-nodes-sample
% cd n8n-nodes-sample

package.json内のプロジェクト名をn8n-nodes-sampleに変更する

% npm install
% npm run build

開発中パッケージをグローバルにリンクする

% npm link
% npm ls --link -g
/Users/myhome/.nvm/versions/node/v20.19.1/lib
└── n8n-nodes-sample@0.1.0 -> ./../../../../../dev/n8n-nodes-sample

docker-compose.ymlを作成する

ホスト上の開発パッケージのdistディレクトリをdockerコンテナ内のディレクトリにマップする

services:
  n8n:
    container_name: n8n
    image: docker.n8n.io/n8nio/n8n
    ports:
      - "5678:5678"
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_DATABASE=n8ndevdb
      - DB_POSTGRESDB_HOST=host.docker.internal
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_USER=dbuser
      - DB_POSTGRESDB_SCHEMA=n8ndev
      - DB_POSTGRESDB_PASSWORD=dbuserpass
      - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
    volumes:
     - ./docker/n8n-data:/home/node/.n8n
     - /Users/myhome/dev/n8n-nodes-sample/dist:/home/node/.n8n/custom/node_modules/n8n-nodes-sample
    working_dir: /home/node/.n8n
volumes:
  n8n_data:

コンテナを起動する

% docker-compose up -d

ワークフローを作成する

http://localhost:5678 を開く

sampleリポジトリのExampleNode, httpBinがノードとして追加できることを確認する

これで、ローカル環境で、Community nodeを開発する準備ができました。

関連記事

カテゴリー

アーカイブ

Lang »