Shimming as dependências das dependências com o browserify-shim
Estou tentando refatorar uma biblioteca que usa o Browserify, retirando certos módulos do pacote usando o browserify-shim. Especificamente, a biblioteca usa require ("codemirror"), mas quero fornecer um pacote que não inclua o CodeMirror, mas use um que é fornecido via CDN.
Então, eu tenho a configuração browserify-shim no meu package.json como
"browserify-shim": {
"jquery": "global:jQuery",
"codemirror": "global:CodeMirror"
}
Por enquanto, tudo bem. require ('jquery') e require ('codemirror') desapareceram do pacote configurável do navegador e foram substituídos pelo trecho de código esperado para pegar o jQuery e o CodeMirror do objeto da janela.
A biblioteca também requer alguns complementos do CodeMirror. Por exemplo, require ('codemirror / addon / hint / show-hint.js'). Isso é bom. Eu quero esse complemento empacotado. No entanto, dentro desse complemento, há um wrapper UMD que inclui require ("../../ lib / codemirror"). O Browserify está vendo isso e está agrupando o CodeMirror em /node_modules/codemirror/lib/codemirror.js por causa disso (eu acho). Eu quero que isso use window.CodeMirror, conforme definido no shim codemirror, mas não pode descobrir isso. Tentei muitas variações, incluindo o seguinte:
"browserify-shim": {
"jquery": "global:jQuery",
"codemirror": "global:CodeMirror",
"../../lib/codemirror": "global:CodeMirror",
"codemirror/addon/hint/show-hint.js": {
"exports":null,
"depends":["../../lib/codemirror:CodeMirror"]
}
}
Esse requerimento ("../../ lib / codemirror") não desaparecerá! Tenho certeza de que estou perdendo alguma coisa.
Estou executando isso a partir de um script Gulp, mas não acho que isso faça alguma diferença. Browserify versão 3.38.1. Versão 3.7.0 do Browserify-shim.
Alguma ideia?