Шимминг зависимостей зависимостей с browserify-shim
Я пытаюсь реорганизовать библиотеку, которая использует Browserify, путем выделения определенных модулей из комплекта с помощью browserify-shim. В частности, библиотека использует require ("codemirror"), но я хочу предоставить пакет, который не включает CodeMirror, а скорее будет использовать тот, который предоставляется через CDN.
Итак, у меня есть пакет browserify-shim в моем файле package.json, например
"browserify-shim": {
"jquery": "global:jQuery",
"codemirror": "global:CodeMirror"
}
Все идет нормально. require ('jquery') и require ('codemirror') исчезли из пакета, подвергшегося проверке, и были заменены ожидаемым фрагментом кода, чтобы захватить jQuery и CodeMirror с объекта window.
Библиотека также требует некоторых дополнений CodeMirror. Например require ('codemirror / addon / hint / show-hint.js'). Все в порядке. Я хочу, чтобы это дополнение в комплекте. Однако в этом дополнении есть оболочка UMD, которая включает require ("../../ lib / codemirror"). Browserify видит это и связывает CodeMirror из /node_modules/codemirror/lib/codemirror.js из-за этого (я думаю). Я хочу, чтобы это использовало window.CodeMirror, как определено в shim codemirror, но не могу понять это. Перепробовал много вариантов, включая следующие:
"browserify-shim": {
"jquery": "global:jQuery",
"codemirror": "global:CodeMirror",
"../../lib/codemirror": "global:CodeMirror",
"codemirror/addon/hint/show-hint.js": {
"exports":null,
"depends":["../../lib/codemirror:CodeMirror"]
}
}
Это требует ("../../ lib / codemirror") не исчезнет! Я уверен, что что-то упустил.
Я запускаю это из сценария Gulp, но я не думаю, что это должно иметь какое-либо значение. Browserify версия 3.38.1. Browserify-shim версия 3.7.0.
Есть идеи?