将 select2 4.0 版与 NPM 和 browserify 结合使用
Use select2 version 4.0 with NPM and browserify
我正在尝试在 &-js 应用程序中使用 select2 版本 4.0 - 因此这意味着我正在使用 npm 和 browserify。
不幸的是我无法加载 select2。
正在加载js文件,没有错误,因为我可以在相关地方添加一些console.log
语句并查看它们的输出,
但是当我尝试使用 select2 时,我被告知它没有定义。
Uncaught TypeError: $(...).select2 is not a function
这是我正在尝试做的事情。
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
所以我的思路几乎是正确的——它是将 select2 加载到 jQuery 的错误副本上。
正在加载 jQuery 的两个版本。
在我的 package.json 中,我将 jQuery 列为依赖项,但是我还通过 browser: {"jquery: "./bower_components/.../jquery.js"}
键加载了 jQuery 的 bower 版本。
似乎 node_modules 目录外的任何东西都可能使用 "browser" 定义的模块,而 node_modules 目录内的任何东西都将使用 npm 加载的模块。
基本上,如果发生类似的事情,请仔细检查您是否加载了 libraryX.
的两个副本
我正在尝试在 &-js 应用程序中使用 select2 版本 4.0 - 因此这意味着我正在使用 npm 和 browserify。
不幸的是我无法加载 select2。
正在加载js文件,没有错误,因为我可以在相关地方添加一些console.log
语句并查看它们的输出,
但是当我尝试使用 select2 时,我被告知它没有定义。
Uncaught TypeError: $(...).select2 is not a function
这是我正在尝试做的事情。
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
所以我的思路几乎是正确的——它是将 select2 加载到 jQuery 的错误副本上。
正在加载 jQuery 的两个版本。
在我的 package.json 中,我将 jQuery 列为依赖项,但是我还通过 browser: {"jquery: "./bower_components/.../jquery.js"}
键加载了 jQuery 的 bower 版本。
似乎 node_modules 目录外的任何东西都可能使用 "browser" 定义的模块,而 node_modules 目录内的任何东西都将使用 npm 加载的模块。
基本上,如果发生类似的事情,请仔细检查您是否加载了 libraryX.
的两个副本