Как я могу использовать select2 с webpack?

Я использую webpack для управления всеми моими активами, когда я использую этот код для требования select2 (https://github.com/select2/select2) я получил ошибку

$(...).select2 не является функцией.

require.ensure(['./vendors/select2'],function (require) {
    require('./site');
});
// site.js
(function ($) {
    $(document).ready(function () {
        $(".js-1example-basic-single").select2();
    });
})(jQuery);

Я думаю, что что-то не так с экспортом модулей. Я пробовал много поисков, но без надежды.

кто-нибудь пожалуйста, скажите мне, что делать, мне понадобилось около 10 часов.

спасибо!

2 ответов


Вы можете запустить select2 таким образом:

import $ from 'jquery';
import 'select2';                       // globally assign select2 fn to $ element
import 'select2/dist/css/select2.css';  // optional if you have css loader

$(() => {
  $('.select2-enable').select2();
});

для тех, кто использует пакет пакетов для загрузки select2, просто импортировать его не сработало.

мне пришлось инициализировать его следующим образом:

//Import
import $ from 'jquery';
import select2 from 'select2';

//Hook up select2 to jQuery
select2($);

//...later
$(`select`).select2();

без вызова подключения и передачи jQuery в функцию он не будет связываться и приводить к $(...).select2 is not function. ошибка.