Используя Symfony 4 и Webpack Encore, я не могу заставить Выбрать2 работать.
Я использую [email protected] и импортирую его в app.js следующим образом:
import $ from 'jquery';
import 'bootstrap';
import 'select2';
Я тоже пробовал использовать
Encore.autoProvidejQuery()
в webpack.config.js, а затем позаботьтесь о комментировании
import $ from 'jquery';
строка в app.js, чтобы jquery не импортировался дважды.
Я пробовал все, что мог найти в других автоответчиках, например:
import select2 form 'select2';
$(() => {
$('.select2-enable').select2();
});
или
select2($);
Почти все мои попытки приводят к одной и той же ошибке:
TypeError: $(...).select2 is not a function
Обновлено:
Работаю сейчас. Каждый раз, когда я вносил изменения в app.js (и перестраивал), я использовал консоль разработчика firefox, чтобы проверить, работает ли она, но я всегда получал
not a function
ошибка, хотя проблема была решена и select2 работал.
Это потому, что я использую Webpack, консоль браузера больше не распознает функцию select2()?
сначала установите его с помощью yarn add select2, затем используйте его с require вместо import, например: require('select2') в вашем файле app.js
@Trix: Спасибо за ваш комментарий. Получил, что он работает (см. Мое редактирование), меня ввело в заблуждение странное поведение консоли браузера (оно не работает в консоли). Он работает так же, как при использовании require или import.
@Mert, Спасибо за комментарий. Да, я перестраивал после каждого изменения. О моем html-коде: я вызываю select2 () в методе компонента vue.js.




Сначала установите его с помощью yarn:
yarn add select2
Затем используйте его с require вместо import:
require('select2')
в вашем файле app.js.
It works the same using require or import.
Babel преобразует декларацию импорта и экспорта в CommonJS (требуется), что позволяет загружать модули динамически.
Поэтому, несмотря на то, что они выглядят одинаково, старайтесь всегда использовать require.
Вы перестроили после этого кода? Если да, не могли бы вы поделиться своими html-кодами?