Используйте select2 версии 4.0 с NPM и браузером

Я пытаюсь использовать select2 версии 4.0 в приложении ampersand-js - это означает, что я использую npm и браузер.

К сожалению, я не могу загрузить select2.

файл js загружается без ошибок, так как я могу добавить несколько операторов console.log в соответствующие места и увидеть их вывод,

но когда я пытаюсь использовать select2, мне говорят, что он не определен.

Uncaught 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 браузерировать версию jquery-select2 версии 4.x


person Hailwood    schedule 10.06.2015    source источник


Ответы (1)


Так что ход моих мыслей был почти верным — он загружал select2 не в ту копию jQuery.

Было загружено две версии jQuery.

В моем package.json я указал jQuery как зависимость, однако я также загружал версию jQuery в беседке с помощью ключа browser: {"jquery: "./bower_components/.../jquery.js"}.

Кажется, что все, что находится за пределами каталога node_modules, скорее всего, использует модуль, определенный «браузером», тогда как все, что находится внутри каталога node_modules, будет использовать загруженный модуль npm.

По сути, если происходит что-то подобное, дважды проверьте, что вы не загружаете две копии libraryX.

person Hailwood    schedule 10.06.2015
comment
Удалена загруженная версия Bower. - person Hailwood; 07.04.2016