集成节点/Creating_nodes/Build_your_node/Reference
节点版本管理#
n8n 支持节点版本管理。您可以通过引入新版本对现有节点进行修改,而不会破坏现有行为。 请注意 n8n 决定加载哪个节点版本的机制:
- 如果用户使用版本 1 构建并保存工作流,即使您创建并发布了该节点的版本 2,n8n 在该工作流中仍会继续使用版本 1。
- 当用户创建新工作流并浏览节点时,n8n 总是加载该节点的最新版本。
节点样式限制的版本控制类型
如果您使用声明式样式构建节点,则无法使用完整版本控制功能。
轻量版本控制#
此功能适用于所有节点类型。 单个节点可以包含多个版本,允许进行小版本迭代而无需代码重复。使用此功能需:
- 将主
version参数改为数组,并添加版本号(包含现有版本) - 随后即可通过
@version在任何对象的displayOptions中访问版本参数(用于控制 n8n 在哪些版本中显示该对象)。也可以通过函数使用const nodeVersion = this.getNode().typeVersion;查询版本
举例说明,假设您需要为声明式节点教程中的 NasaPics 节点添加版本控制,并配置某个资源仅在该节点版本 2 中显示。在基础 NasaPics.node.ts 文件中:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20| ``` { displayName:'NASA Pics', name:'NasaPics', icon:'file:nasapics.svg', // 列出可用版本 version:[1,2,3], // 更多基础参数在此 properties:[ // 添加仅针对版本2显示的资源 { displayName:'Resource name', // 更多资源参数 displayOptions:{ show:{ '@version':2, }, }, }, ], }
---|---
## 完整版本控制[#](https://docs.n8n.io/integrations/creating-nodes/build/reference/node-versioning/#full-versioning "永久链接")
此功能不适用于声明式样式节点。
具体示例请参考 [Mattermost 节点](https://github.com/n8n-io/n8n/tree/master/packages/nodes-base/nodes/Mattermost)。
完整版本控制概要:
* 基础节点文件应扩展 `NodeVersionedType` 而非 `INodeType`
* 基础节点文件应包含描述信息(含 `defaultVersion`,通常是最新版本)、其他基础节点元数据(如名称)和版本列表,不应包含任何节点功能
* n8n 建议使用 `v1`、`v2` 等作为版本文件夹名称