Шимминг по ссылкам - как настроить?
Я пытаюсь использовать библиотеку ссылок (сигма-форк), которая обеспечивает "main": "dist/sigma.require.js"
(в package.json
). это позволяет мне сделать:
var sigma = require('linkurious');
однако, плагины не включены, поэтому я должен требовать их отдельно. проблема в том, что плагины полагаются на sigma
переменная, доступная в глобальной области видимости. так что я подправил вещи следующим образом (из package.json
):
"browser": {
"sigma": "./node_modules/linkurious/dist/sigma.js",
"linkurious/plugins": "./node_modules/linkurious/dist/plugins.js"
},
"browserify-shim": {
"sigma": {"exports": "sigma"},
"linkurious/plugins": { "depends": [ "sigma" ] }
},
"browserify": {
"transform": [ "browserify-shim" ]
},
который при запуске в браузере не генерирует ошибок при включении плагинов (я так понимаю, это означает, что глобальная переменная доступна), но ссылки на плагины терпят неудачу (как будто они не смогли присоединиться или подключились к не глобальная переменная).
Я использую grunt-browserify для запуска процесса, в котором он настроен следующим образом (из Gruntfile.js
):
grunt.initConfig({
browserify: {
libs: {
files: { 'inc.js': ['index.js'] },
},
}
});
Я приложил небольшой проект к этой проблеме с минимально необходимым кодом, чтобы продемонстрировать проблему в надежде, что кто-то еще сможет воспроизвести / выяснить. распаковать, набрать npm install; npm start
и запустить браузер против http://localhost:8002/
чтобы увидеть проблему.
заранее спасибо,
ekkis
- редактировать я -
Между прочим, bendrucker в git-репо (см. https://github.com/thlorenz/browserify-shim/issues/215) предлагает мне сделать глобальное преобразование. Мне объяснили, что шимминг не работает на node_modules
файлы и для тех, кто мне нужно глобальное преобразование. для меня это не имеет особого смысла, поскольку весь смысл шимминга в том, что вы не владеете кодом, который шиммируете. в любом случае, Бендрукер указал мне на этот другой пост SO, где задан вопрос, но ответов не дано.
Помогите?