Shimming dependencias de dependencias con browserify-shim

Estoy tratando de refactorizar una biblioteca que usa Browserify eliminando ciertos módulos del paquete usando browserify-shim. Específicamente, los usos de la biblioteca requieren ("codemirror") pero quiero proporcionar un paquete que no incluya CodeMirror, sino que utilizará uno que se proporciona a través de CDN.

Así que tengo la configuración browserify-shim en mi package.json como

  "browserify-shim": {
    "jquery": "global:jQuery",
    "codemirror": "global:CodeMirror"
  }

Hasta aquí todo bien. require ('jquery') y require ('codemirror') han desaparecido del paquete browserified y han sido reemplazados por el fragmento de código esperado para tomar jQuery y CodeMirror del objeto de la ventana.

La biblioteca también requiere algunos complementos de CodeMirror. Por ejemplo, require ('codemirror / addon / hint / show-hint.js'). Esta bien. Quiero ese complemento incluido. Sin embargo, dentro de este complemento hay un contenedor UMD que incluye require ("../../ lib / codemirror"). Browserify está viendo esto y está empaquetando el CodeMirror de /node_modules/codemirror/lib/codemirror.js debido a esto (creo). Quiero que esto use window.CodeMirror como se define en la cuña codemirror en su lugar, pero no puedo resolverlo. He probado muchas variaciones, incluidas las siguientes:

  "browserify-shim": {
    "jquery": "global:jQuery",
    "codemirror": "global:CodeMirror",
    "../../lib/codemirror": "global:CodeMirror",
    "codemirror/addon/hint/show-hint.js": { 
      "exports":null,
      "depends":["../../lib/codemirror:CodeMirror"]
    }
  }

¡Eso requiere ("../../ lib / codemirror") no desaparecerá! Estoy seguro de que me falta algo.

Estoy ejecutando esto desde un script Gulp, pero no creo que eso deba hacer ninguna diferencia. Browserify versión 3.38.1. Browserify-shim versión 3.7.0.

¿Algunas ideas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta