Шимминг зависимостей зависимостей с 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.

Есть идеи?

Ответы на вопрос(2)

Ваш ответ на вопрос