使用 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 buildn8n-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 devn8n-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