N8N中文教程
集成节点/Creating_nodes/Build_your_node

使用 n8n-node 工具#

n8n-node 工具是用于为 n8n 开发社区节点的官方 CLI。您可以使用它来搭建新节点、构建项目并在开发过程中运行节点。 使用 n8n-node,您可以创建符合已验证社区节点指南的节点。

获取 n8n-node#

无需安装即可运行 n8n-node#

您可以直接创建 n8n-node 项目而无需安装,只需使用包管理器的 @n8n/create-node 初始化工具

npm create @n8n/node@latest

这将在本地设置初始项目文件(替代在本地安装 n8n-node 并显式运行 new 命令)。之后,您可以通过项目目录内的包管理器脚本运行器运行其余的 n8n-node 命令(例如 npm run dev)。

全局安装 n8n-node#

您可以使用 npm 全局安装 n8n-node

npm install -g @n8n/n8n-node

通过输入以下命令验证访问权限:

n8n-node

命令概览#

n8n-node 工具提供以下命令:

new#

new 命令为新节点创建文件系统结构和元数据。此命令初始化的结构与无需安装运行 n8n-node 中概述的相同。

调用时,它会交互式提示您提供项目详细信息以自定义起始代码。您需要提供项目名称、选择节点类型,并选择最符合需求的起始模板。n8n-node 工具将创建项目文件结构,并可选择安装初始项目依赖项。

创建新节点部分了解更多关于如何使用 new 命令的信息。

build#

build 命令编译您的节点并复制所有必需的资源。

构建节点部分了解更多关于如何使用 build 命令的信息。

dev#

dev 命令使用您的节点运行 n8n。它会监控项目目录并在检测到更改时自动重新构建实时预览。

在 n8n 中测试节点部分了解更多关于如何使用 dev 命令的信息。

lint#

lint 命令检查当前目录中节点的代码。您可以选择使用 --fix 选项尝试自动修复它识别出的任何问题。

代码检查节点部分了解更多关于如何使用 lint 命令的信息。

release#

release 命令将您的社区节点包发布到 npm。它使用 release-it 在发布到 npm 之前清理、检查并干净地构建您的包。

发布节点部分了解更多关于如何使用 release 命令的信息。

创建新节点#

要使用 n8n-node 创建新节点,请调用 n8n-node new。您可以完全交互式地调用此命令,或在命令行中提供详细信息。

无需安装创建新节点

您可以选择直接创建 n8n-node 项目而无需安装 n8n-node,只需使用包管理器的 @n8n/create-node 初始化工具

在以下命令中,将 n8n-node new 替换为 npm create @n8n/node@latest。使用此形式时,必须在包含任何选项(如 --template)之前添加双破折号(--)。例如:

npm create @n8n/node@latest -- --template=github-issues-api

该命令将提示您输入有关节点的任何缺失信息,然后生成项目结构以帮助您开始。默认情况下,它会继续安装初始项目依赖项(您可以通过传递 --skip-install 标志来禁用此功能)。

交互式设置节点详细信息#

当不带参数调用时,n8n-node new 会交互式提示您输入新节点的详细信息:

n8n-node new

这将启动一个交互式提示,您可以在其中定义项目的详细信息:

  • 您的节点叫什么名字? 您的节点名称。这会影响项目目录名称、包名称以及 n8n 节点本身的名称。名称必须使用以下格式之一:
    • n8n-nodes-<您的节点名称>
    • @<您的组织>/n8n-nodes-<您的节点名称>
  • 您要构建什么类型的节点? 您要构建的节点类型
    • HTTP API:一种低代码、声明式的节点结构,旨在更快地获得 n8n Cloud 的批准。
    • 其他:具有完全灵活性的编程风格节点。
  • 您想使用什么模板? 使用 HTTP API 时,您可以选择起始模板:
    • GitHub Issues API:一个包含多个操作和凭据的演示节点。这可以帮助您熟悉节点结构和约定。
    • 从零开始:一个空白模板,将通过一些进一步的提示指导您完成自定义设置。

当选择 HTTP API > 从零开始时,n8n-node 将询问以下信息:

  • API 的基础 URL 是什么? 您计划集成的 API 根地址。
  • 您的 API 使用哪种认证类型? 节点应提供的认证方式:
    • API 密钥:通过请求头、查询参数或请求体发送密钥。
    • Bearer Token:通过 Authorization 请求头发送令牌(Authorization: Bearer <token>)。
    • OAuth2:使用 OAuth 2.0 流程代表用户或应用获取访问令牌。
    • Basic Auth:通过 Authorization 请求头发送 base64 编码的用户名和密码。
    • 自定义认证:创建您自己的凭据逻辑。这将创建一个空的凭据类,您可以根据需要进行定制。
    • 无需认证:无需认证。不为节点创建凭据类。

完成选择后,n8n-node 将在当前目录中为您的节点创建新项目目录。默认情况下,它还会安装初始项目依赖项(可通过添加 --skip-install 参数禁用此功能)。

在命令行中提供节点详情#

您可以在命令行中预先提供部分节点信息以避免交互式提示。 可以将节点名称作为参数直接传入:

n8n-node <您的节点名称>

节点命名格式要求: 节点名称必须符合以下格式之一:

  • @<组织名>/n8n-nodes-<节点名称>
  • n8n-nodes-<节点名称>

若已确定要使用的模板,也可通过 --template 参数指定:

n8n-node --template <模板名称>

可选模板类型:

  • declarative/github-issues:包含多操作和认证机制的演示节点,帮助熟悉节点结构和约定
  • declarative/custom:空白模板,将通过进一步提示引导您完成自定义设置
  • programmatic/example:具备完整灵活性的编程式节点模板

构建节点#

您可以通过在项目根目录下运行 build 命令来构建节点:

n8n-node build

n8n-node 将编译您的 TypeScript 文件并打包其他项目资源。您也可以通过包管理器调用 build 脚本。例如,如果您使用 npm,以下命令具有相同效果:

npm run build

代码检查#

n8n-node 工具还会自动为您的项目创建 lint 脚本。您可以通过包管理器运行,例如:

n8n-node lint

您也可以使用包管理器的脚本运行器执行:

npm run lint

如果包含 --fix 选项(也可通过 npm run lint:fix 调用),n8n-node 将尝试修复检测到的问题:

n8n-node lint --fix

在 n8n 中测试节点#

要在 n8n 中测试节点,请在项目根目录下运行 dev 命令:

n8n-node dev

build 命令类似,您也可以通过包管理器运行此命令。例如:

npm run dev

n8n-node 将编译您的项目,然后通过 npm 启动一个加载了您节点的本地 n8n 实例。 访问 localhost:5678 登录您的 n8n 实例。如果打开工作流,您的节点将显示在节点面板中: [节点面板中的节点](https://docs.n8n.io/_images/integrations/creating-nodes/n8n-node/node_in_nodes_panel.png) 在此之后,您可以将其添加到工作流中,并在开发过程中测试节点的功能。

发布节点#

要发布节点,请在项目目录中运行 release 命令。该命令使用 release-it 来构建和发布您的节点。

登录 npm

使用 release 命令前,必须通过 npm login 命令登录 npm。否则 n8n-node 将无权发布您的项目文件。

n8n-node release

要通过 npm 运行,请输入:

npm run release

当您运行 release 命令时,n8n-node 将执行以下操作:

  • 构建节点
  • 对文件运行代码检查
  • 更新变更日志
  • 创建 git 标签
  • 创建 GitHub 发布版本
  • 将包发布到 npm