InfoGrab Docs

Node 파일 구조

요약

node 구조에서 모범 사례와 표준을 따르면 node를 더 쉽게 유지 관리할 수 있습니다. node의 파일 및 디렉터리 구조는 다음에 따라 달라집니다: n8n은 예상되는 node 파일 구조를 생성하기 위해 n8n-node 도구를 사용하는 것을 권장합니다.

node 구조에서 모범 사례와 표준을 따르면 node를 더 쉽게 유지 관리할 수 있습니다. 다른 사람이 코드를 다뤄야 할 때도 도움이 됩니다.

node의 파일 및 디렉터리 구조는 다음에 따라 달라집니다:

  • node의 복잡성.
  • node 버전 관리 사용 여부.
  • npm 패키지에 포함하는 node의 수.

n8n은 예상되는 node 파일 구조를 생성하기 위해 n8n-node 도구를 사용하는 것을 권장합니다. 더 복잡한 요구 사항을 충족하기 위해 생성된 스캐폴딩을 필요에 따라 사용자 정의할 수 있습니다.

필수 파일 및 디렉터리#

node에는 다음이 포함되어야 합니다:

  • 프로젝트 루트의 package.json 파일. 모든 npm 모듈에 필요합니다.
  • node 코드가 포함된 nodes 디렉터리:
    • 이 디렉터리에는 <node-name>.node.ts 형식의 기본 파일이 포함되어야 합니다. 예: MyNode.node.ts.
    • n8n은 node 메타데이터가 포함된 codex 파일을 포함하는 것을 권장합니다. codex 파일 이름은 node 기본 파일 이름과 일치해야 합니다. 예를 들어, MyNode.node.ts라는 node 기본 파일이 있다면 codex 이름은 MyNode.node.json입니다.
    • nodes 디렉터리에는 버전용 디렉터리, 모듈식 구조를 만들기 위해 여러 파일로 분할된 node 코드 등 다른 파일과 하위 디렉터리가 포함될 수 있습니다.
  • 자격 증명 코드가 포함된 credentials 디렉터리. 이 코드는 단일 자격 증명 파일에 있습니다. 파일 이름 형식은 <node-name>.credentials.ts입니다. 예: MyNode.credentials.ts.

모듈식 구조#

모든 node 기능을 하나의 파일에 넣을지, 기본 파일과 기본 파일이 가져오는 다른 모듈로 분리할지 선택할 수 있습니다. node가 매우 단순하지 않은 한, 분리하는 것이 모범 사례입니다.

기본 패턴은 오퍼레이션을 분리하는 것입니다. 예시는 GithubIssues 스타터 node를 참고하세요.

더 복잡한 node의 경우 n8n은 디렉터리 구조를 권장합니다. 예시로 Airtable node 또는 Microsoft Outlook node를 참고하세요.

  • actions: 리소스를 나타내는 하위 디렉터리를 포함하는 디렉터리.
    • 각 하위 디렉터리에는 두 가지 유형의 파일이 있어야 합니다:
      • 리소스 설명이 있는 인덱스 파일(<resourceName>.resource.ts 또는 index.ts)
      • 오퍼레이션 파일 <operationName>.operation.ts. 이 파일에는 오퍼레이션의 descriptionexecute 함수 두 가지 export가 있어야 합니다.
  • methods: 동적 파라미터 함수를 위한 선택적 디렉터리.
  • transport: 통신 구현이 포함된 디렉터리.

버전 관리#

node에 버전이 두 개 이상 있고 전체 버전 관리를 사용하는 경우 파일 구조가 더 복잡해집니다. 기본 버전을 설정하는 기본 파일과 함께 각 버전용 디렉터리가 필요합니다. 버전 작업에 대한 자세한 내용, 버전 관리 유형을 포함한 정보는 node 버전 관리를 참고하세요.

패키지에 포함할 node 수 결정#

node 빌드 시 두 가지 가능한 설정이 있습니다:

  • 하나의 npm 패키지에 하나의 node.
  • 단일 npm 패키지에 두 개 이상의 node.

n8n은 두 가지 방법을 모두 지원합니다. node를 두 개 이상 포함하는 경우 각 node는 nodes 디렉터리 내에 자체 디렉터리가 있어야 합니다.

프로그래매틱 node 모범 사례 예시#

n8n의 내장 Airtable node는 권장 패턴을 따르는 모듈식 구조와 버전 관리를 구현합니다.

Node 파일 구조

원문 보기
요약

node 구조에서 모범 사례와 표준을 따르면 node를 더 쉽게 유지 관리할 수 있습니다. node의 파일 및 디렉터리 구조는 다음에 따라 달라집니다: n8n은 예상되는 node 파일 구조를 생성하기 위해 n8n-node 도구를 사용하는 것을 권장합니다.

node 구조에서 모범 사례와 표준을 따르면 node를 더 쉽게 유지 관리할 수 있습니다. 다른 사람이 코드를 다뤄야 할 때도 도움이 됩니다.

node의 파일 및 디렉터리 구조는 다음에 따라 달라집니다:

  • node의 복잡성.
  • node 버전 관리 사용 여부.
  • npm 패키지에 포함하는 node의 수.

n8n은 예상되는 node 파일 구조를 생성하기 위해 n8n-node 도구를 사용하는 것을 권장합니다. 더 복잡한 요구 사항을 충족하기 위해 생성된 스캐폴딩을 필요에 따라 사용자 정의할 수 있습니다.

필수 파일 및 디렉터리#

node에는 다음이 포함되어야 합니다:

  • 프로젝트 루트의 package.json 파일. 모든 npm 모듈에 필요합니다.
  • node 코드가 포함된 nodes 디렉터리:
    • 이 디렉터리에는 <node-name>.node.ts 형식의 기본 파일이 포함되어야 합니다. 예: MyNode.node.ts.
    • n8n은 node 메타데이터가 포함된 codex 파일을 포함하는 것을 권장합니다. codex 파일 이름은 node 기본 파일 이름과 일치해야 합니다. 예를 들어, MyNode.node.ts라는 node 기본 파일이 있다면 codex 이름은 MyNode.node.json입니다.
    • nodes 디렉터리에는 버전용 디렉터리, 모듈식 구조를 만들기 위해 여러 파일로 분할된 node 코드 등 다른 파일과 하위 디렉터리가 포함될 수 있습니다.
  • 자격 증명 코드가 포함된 credentials 디렉터리. 이 코드는 단일 자격 증명 파일에 있습니다. 파일 이름 형식은 <node-name>.credentials.ts입니다. 예: MyNode.credentials.ts.

모듈식 구조#

모든 node 기능을 하나의 파일에 넣을지, 기본 파일과 기본 파일이 가져오는 다른 모듈로 분리할지 선택할 수 있습니다. node가 매우 단순하지 않은 한, 분리하는 것이 모범 사례입니다.

기본 패턴은 오퍼레이션을 분리하는 것입니다. 예시는 GithubIssues 스타터 node를 참고하세요.

더 복잡한 node의 경우 n8n은 디렉터리 구조를 권장합니다. 예시로 Airtable node 또는 Microsoft Outlook node를 참고하세요.

  • actions: 리소스를 나타내는 하위 디렉터리를 포함하는 디렉터리.
    • 각 하위 디렉터리에는 두 가지 유형의 파일이 있어야 합니다:
      • 리소스 설명이 있는 인덱스 파일(<resourceName>.resource.ts 또는 index.ts)
      • 오퍼레이션 파일 <operationName>.operation.ts. 이 파일에는 오퍼레이션의 descriptionexecute 함수 두 가지 export가 있어야 합니다.
  • methods: 동적 파라미터 함수를 위한 선택적 디렉터리.
  • transport: 통신 구현이 포함된 디렉터리.

버전 관리#

node에 버전이 두 개 이상 있고 전체 버전 관리를 사용하는 경우 파일 구조가 더 복잡해집니다. 기본 버전을 설정하는 기본 파일과 함께 각 버전용 디렉터리가 필요합니다. 버전 작업에 대한 자세한 내용, 버전 관리 유형을 포함한 정보는 node 버전 관리를 참고하세요.

패키지에 포함할 node 수 결정#

node 빌드 시 두 가지 가능한 설정이 있습니다:

  • 하나의 npm 패키지에 하나의 node.
  • 단일 npm 패키지에 두 개 이상의 node.

n8n은 두 가지 방법을 모두 지원합니다. node를 두 개 이상 포함하는 경우 각 node는 nodes 디렉터리 내에 자체 디렉터리가 있어야 합니다.

프로그래매틱 node 모범 사례 예시#

n8n의 내장 Airtable node는 권장 패턴을 따르는 모듈식 구조와 버전 관리를 구현합니다.