使用Browserify包含Typeahead.js Bloodhound会给出空对象{}

时间:2014-08-16 20:39:38

标签: javascript typeahead browserify bloodhound browserify-shim

我正在尝试在Browserify项目中使用Bloodhound和Typeahead。我正在使用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);
}

输出一个空对象({})。

我已经按照relevant question中的所有内容,使用命令行中的vanilla Browserify,但仍然没有骰子。


我能够通过添加

来实现它
module.exports = Bloodhound;

到bloodhound.js文件,但这远非理想。浏览器不应该添加出口吗?我没有在生成的bundle.js中看到Bloodhound的module.exports。

1 个答案:

答案 0 :(得分:1)

显然,这将在v0.11中修复,因为typeahead.js正在转移到UMD

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