Webpack Encore select2 не работает без ошибки импорта функции

Используя 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()?

Вы перестроили после этого кода? Если да, не могли бы вы поделиться своими html-кодами?

Mert Simsek 13.11.2018 13:53

сначала установите его с помощью yarn add select2, затем используйте его с require вместо import, например: require('select2') в вашем файле app.js

Pmpr 13.11.2018 14:09

@Trix: Спасибо за ваш комментарий. Получил, что он работает (см. Мое редактирование), меня ввело в заблуждение странное поведение консоли браузера (оно не работает в консоли). Он работает так же, как при использовании require или import.

Roubi 13.11.2018 16:07

@Mert, Спасибо за комментарий. Да, я перестраивал после каждого изменения. О моем html-коде: я вызываю select2 () в методе компонента vue.js.

Roubi 13.11.2018 16:09
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
2
4
2 728
1

Ответы 1

Сначала установите его с помощью yarn:

yarn add select2

Затем используйте его с require вместо import:

require('select2')

в вашем файле app.js.

It works the same using require or import.

Babel преобразует декларацию импорта и экспорта в CommonJS (требуется), что позволяет загружать модули динамически.

Поэтому, несмотря на то, что они выглядят одинаково, старайтесь всегда использовать require.

Другие вопросы по теме