使用带有NPM和browserify的select2版本4.0

时间:2015-06-10 11:16:23

标签: npm jquery-select2 browserify jquery-select2-4

我正在尝试在&ampersand-js应用中使用select2版本4.0 - 因此这意味着我正在使用npm和browserify。

不幸的是我无法让select2加载。

js文件正在加载而没有错误,因为我可以在相关位置添加一些console.log语句并查看它们的输出,

但是当我尝试使用select2时,我被告知它没有被定义。

  

未捕获的TypeError:$(...)。select2不是函数

这就是我想要做的事情。

var $ = require('jquery');
require('Select2');

$('select').select2();

我觉得问题来自select2.js https://github.com/select2/select2/blob/4.0.0/dist/js/select2.js#L14

中的这一行

特别是它调用factory(require('jquery'));因此我相信select2正在加载到jQuery的副本中然后被丢弃?

我发现这个问题听起来像是一回事,除了我无法让它工作:npm browserify version of jquery-select2 version 4.x

1 个答案:

答案 0 :(得分:2)

所以我的思路几乎是正确的 - 它将select2加载到错误的jQuery副本上。

正在加载两个版本的jQuery。

在我的package.json中,我将jQuery列为依赖项,但是我也通过browser: {"jquery: "./bower_components/.../jquery.js"}键加载了jQuery的bower版本。

似乎node_modules目录之外的任何内容都可能使用“browser”定义的模块,而node_modules目录中的任何内容都将使用npm加载模块。

基本上,如果出现类似情况,请仔细检查您是否未加载 libraryX 的两个副本。