Javascript 包含带有Browserify的Typeahead.js Bloodhound会给出空对象{}

Javascript 包含带有Browserify的Typeahead.js Bloodhound会给出空对象{},javascript,typeahead,browserify,bloodhound,browserify-shim,Javascript,Typeahead,Browserify,Bloodhound,Browserify Shim,我正试图在我的浏览器化项目中使用“猎犬”和“打字先行”。我正在使用browserify垫片 package.json { ... "browserify": { "transform": ["browserify-shim"] }, "browserify-shim": "./shim.js", } shim.js module.exports = { ... 'typeahead.js/dist/bloodhound': {

我正试图在我的浏览器化项目中使用“猎犬”和“打字先行”。我正在使用browserify垫片

package.json

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

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

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

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

module.exports = function() {
    console.log(Bloodhound);
}
它输出一个空对象({})

我已经完成了这一切,从命令行使用香草浏览器,但仍然没有骰子


我可以通过添加

module.exports = Bloodhound;

对于bloodhound.js文件,但这远远不够理想。browserify shim不应该添加导出吗?我在生成的bundle.js中没有看到一个module.exports for Bloodhound。

显然,随着typeahead.js移动到UMD,这将在v0.11中得到修复