Skip to main content
Esta guía te ayuda a migrar del enfoque obsoleto de monkey-patching a la nueva API de extensión del menú contextual. El enfoque anterior de monkey-patching de LGraphCanvas.prototype.getCanvasMenuOptions y nodeType.prototype.getExtraMenuOptions está obsoleto:
Si ves advertencias de obsolescencia en la consola de tu navegador, tu extensión está usando la API antigua y deberías migrarla.

Migrar los menús del lienzo

Enfoque anterior (obsoleto)

El enfoque anterior modificaba el prototipo durante la configuración de la extensión:

Enfoque nuevo (recomendado)

El enfoque nuevo usa un hook dedicado de la extensión:

Diferencias clave

Migrar los menús de nodos

Enfoque anterior (obsoleto)

El enfoque anterior modificaba el prototipo del tipo de nodo:

Enfoque nuevo (recomendado)

El enfoque nuevo usa un hook de extensión dedicado:

Diferencias clave

Patrones comunes

Elementos de menú condicionales

Ambos enfoques admiten elementos condicionales, pero la nueva API es más limpia:

Añadir separadores

Los separadores se añaden de la misma forma en ambos enfoques:

Crear submenús

La forma recomendada de crear submenús es usar la propiedad declarativa submenu:
Este enfoque declarativo es más limpio y coincide con los patrones que se usan en todo el código de ComfyUI.
Aunque también se admite un enfoque basado en callbacks con has_submenu: true y new LiteGraph.ContextMenu(), se prefiere la propiedad declarativa submenu porque es más fácil de mantener.

Acceder al estado

Solución de problemas

Cómo identificar el uso de la API antigua

Busca estos patrones en tu código:

Entender las advertencias de obsolescencia

Si ves esta advertencia en la consola:
Tu extensión está usando el enfoque antiguo y deberías migrarla.

Verificar que la migración funcionó

Después de la migración:
  1. Elimina todas las modificaciones de prototipos de setup() y beforeRegisterNodeDef()
  2. Añade los hooks getCanvasMenuItems() y/o getNodeMenuItems()
  3. Comprueba que tus elementos de menú siguen apareciendo correctamente
  4. Verifica que no aparezcan advertencias de obsolescencia en la consola

Ejemplo de migración completo

Antes:
Después:

Recursos adicionales