메인 콘텐츠로 건너뛰기
이 가이드는 더 이상 사용되지 않는 몽키 패칭 방식에서 새로운 컨텍스트 메뉴 확장 API로의 마이그레이션을 도와줍니다. LGraphCanvas.prototype.getCanvasMenuOptionsnodeType.prototype.getExtraMenuOptions를 몽키 패칭하는 기존 방식은 더 이상 사용되지 않습니다:
브라우저 콘솔에 Deprecation 경고가 표시된다면, 해당 확장 프로그램이 이전 API를 사용하고 있으므로 마이그레이션해야 합니다.

캔버스 메뉴 마이그레이션

기존 방식 (사용 중단)

기존 방식은 확장 프로그램 설정 시 프로토타입을 수정했습니다:

새 방식 (권장)

새 방식은 전용 확장 프로그램 훅을 사용합니다:

주요 차이점

노드 메뉴 마이그레이션

기존 방식 (사용 중단)

기존 방식은 노드 유형 프로토타입을 수정했습니다:

새 방식 (권장)

새 방식은 전용 확장 프로그램 훅을 사용합니다:

주요 차이점

공통 패턴

조건부 메뉴 항목

두 방식 모두 조건부 항목을 지원하지만, 새 API가 더 깔끔합니다:

구분선 추가

구분선은 두 방식 모두 동일하게 추가됩니다:

하위 메뉴 생성

하위 메뉴를 생성하는 권장 방법은 선언적 submenu 속성을 사용하는 것입니다:
이 선언적 방식은 더 깔끔하며 ComfyUI 코드베이스 전체에서 사용되는 패턴과 일치합니다.
has_submenu: true와 new LiteGraph.ContextMenu()를 사용한 콜백 방식도 지원되지만, 유지보수성을 위해 선언적 submenu 속성을 사용하는 것이 좋습니다.

상태 접근

문제 해결

기존 API 사용 여부 확인 방법

코드에서 다음과 같은 패턴을 찾아보세요:

Deprecation 경고 이해하기

콘솔에 다음과 같은 경고가 표시된다면:
이 확장 프로그램이 기존 방식을 사용하고 있으므로 마이그레이션해야 합니다.

마이그레이션 성공 확인

마이그레이션 후:
  1. setup() 및 beforeRegisterNodeDef()에서 모든 프로토타입 수정 제거
  2. getCanvasMenuItems() 및/또는 getNodeMenuItems() 훅 추가
  3. 메뉴 항목이 여전히 올바르게 표시되는지 테스트
  4. 콘솔에 Deprecation 경고가 나타나지 않는지 확인

완전한 마이그레이션 예제

이전:
이후:

추가 자료