노드 버전 관리#
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 노드를 참조하세요.
전체 버전 관리 요약:
- 기본 노드 파일은
INodeType
대신NodeVersionedType
을 확장해야 합니다. - 기본 노드 파일은
defaultVersion
(보통 최신)을 포함하여 기본 노드 메타데이터 및 버전 목록을 담고 있어야 하며, 노드 기능은 포함하지 않아야 합니다. - n8n은 버전 폴더 이름으로
v1
,v2
등을 사용하는 것을 권장합니다.