Включение Typeahead.js Bloodhound с Browserify дает пустой объект {}

Я пытаюсь использовать Bloodhound и Typeahead в своем проекте Browserify. Я использую browserify-shim.

package.json

{
     ...
    "browserify": {
        "transform": ["browserify-shim"]
    },
    "browserify-shim": "./shim.js",
}

shim.js

module.exports = {
    ...
    'typeahead.js/dist/bloodhound': {
        exports: 'Bloodhound',
        depends: {jquery: 'jQuery'}
    }
};

test.js

...
var Bloodhound = require('typeahead.js/dist/bloodhound');

module.exports = function() {
    console.log(Bloodhound);
}

Что выводит пустой объект ({}).

Я следил за всем в этом актуальный вопрос, используя vanilla Browserify из командной строки, но все еще без кубиков.


Я смог заставить его работать, добавив

module.exports = Bloodhound;

в файл bloodhound.js, но это далеко не идеально. Разве браузер не должен добавлять экспорт? Я не видел module.exports для Bloodhound в сгенерированном bundle.js.


person Tucker Connelly    schedule 16.08.2014    source источник


Ответы (1)


По-видимому, это будет исправлено в версии 0.11, так как typeahead.js переходит на UMD.

https://github.com/twitter/typeahead.js/issues/743#issuecomment-52412193

person Tucker Connelly    schedule 24.08.2014