노드 파일 구조 선택하기
n8n 노드를 만들 때 권장되는 파일 및 디렉터리 구조와 모듈화, 버전 관리, 패키지 구성 방법을 설명합니다.
노드 구조에서 모범 사례와 표준을 따르면 노드를 유지 관리하기가 더 쉬워집니다. 다른 사람이 해당 코드를 다뤄야 할 때도 도움이 됩니다. 노드의 파일 및 디렉터리 구조는 다음에 따라 달라집니다. 노드의 복잡도. 노드 버전 관리 사용 여부. npm 패키지에 포함하는 노드 개수. n8n은 예상되는 노드 파일 구조를 생성하기 위해 n8n-node 도구 사용을 권장합니다. 더 복잡한 요구 사항을 충족하기 위해 필요에 따라 생성된 스캐폴딩을 커스터마이징할 수 있습니다. 필수 파일 및 디렉터리 # 노드에는 다음이 포함되어야 합니다. 프로젝트 루트에 위치한 package.json 파일. 모든 npm 모듈에 이 파일이 필요합니다. 노드의 코드를 포함하는 nodes 디렉터리: 이 디렉터리에는 <node-name>.node.ts 형식의 기본 파일 이 포함되어야 합니다. 예를 들어 MyNode.node.ts 입니다. n8n은 노드의 메타데이터를 담는 코덱스 파일 을 포함할 것을 권장합니다. 코덱스 파일명은 노드 기본 파일명과 일치해야 합니다. 예를 들어 노드 기본 파일명이 MyNode.node.ts 라면 코덱스 이름은 MyNode.node.json 입니다. nodes 디렉터리에는 다른 파일과 하위 디렉터리도 포함될 수 있으며, 여기에는 버전용 디렉터리와 모듈식 구조를 만들기 위해 여러 파일로 나뉜 노드 코드도 포함됩니다. 자격 증명 코드를 포함하는 credentials 디렉터리. 이 코드는 단일 자격 증명 파일 에 위치합니다. 파일명 형식은 <node-name>.credentials.ts 입니다. 예를 들어 MyNode.credentials.ts 입니다. 모듈식 구조 # 노드의 모든 기능을 하나의 파일에 넣을지, 아니면 기본 파일과 이 파일이 임포트하는 다른 모듈들로 나눌지 선택할 수 있습니다. 노드가 매우 단순한 경우가 아니라면, 이를 나누는 것이 모범 사례입니다. 기본적인 패턴은 오퍼레이션을 분리하는 것입니다. 예시는 GithubIssues 스타터 노드 를 참고하세요. 더 복잡한 노드의 경우, n8n은 디렉터리 구조를 사용할 것을 권장합니다. 예시로 Airtable 노드 또는 Microsoft Outlook 노드 를 참고하세요. actions : 리소스를 나타내는 하위 디렉터리를 포함하는 디렉터리입니다. 각 하위 디렉터리에는 두 가지 유형의 파일이 포함되어야 합니다. 리소스 설명이 담긴 인덱스 파일( <resourceName>.resource.ts 또는 index.ts 로 명명됨) 오퍼레이션용 파일 <operationName>.operation.ts . 이 파일들은 오퍼레이션의 description 과 execute 함수, 두 가지를 내보내야(export) 합니다. methods : 동적 파라미터 함수를 위한 선택적 디렉터리입니다. transport : 통신 구현이 담긴 디렉터리입니다. 버전 관리 # 노드에 둘 이상의 버전이 있고 전체 버전 관리(full versioning)를 사용하는 경우, 파일 구조가 더 복잡해집