节点版本控制#
n8n支持节点版本控制。您可以通过引入新版本对现有节点进行修改,而不会破坏现有行为。
请注意n8n如何决定加载哪个节点版本:
- 如果用户使用版本1构建并保存了一个工作流,n8n会继续在该工作流中使用版本1,即使您创建并发布了该节点的版本2。
- 当用户创建新工作流并浏览节点时,n8n总是加载该节点的最新版本。
版本控制类型受节点样式限制
如果使用声明式风格构建节点,则无法使用完整版本控制。
轻量级版本控制#
这适用于所有节点类型。
一个节点可以包含多个版本,允许进行小版本增量而无需代码重复。要使用此功能:
- 将主
version参数更改为数组,并添加您的版本号,包括现有版本。 - 然后,您可以在任何对象的
displayOptions中使用@version访问版本参数(用于控制n8n显示该对象的版本)。您也可以通过函数查询版本,使用const nodeVersion = this.getNode().typeVersion;。
举个例子,假设你想为声明式节点教程中的NasaPics节点添加版本控制功能,然后配置一个资源,使n8n仅在节点版本2中显示它。在你的基础NasaPics.node.ts文件中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
完整版本控制#
这不适用于声明式节点。
例如,请参考Mattermost节点。
完整版本控制摘要:
- 基础节点文件应扩展
NodeVersionedType而非INodeType。 - 基础节点文件应包含描述信息,其中需注明
defaultVersion(通常是最新版本号)、节点名称等其他基础元数据,以及版本列表。该文件不应包含任何节点功能实现代码。 - n8n 建议使用
v1、v2等作为版本文件夹名称。