symfony webpack encore:select2不起作用(“ not a function”)

时间:2018-11-13 12:30:45

标签: symfony jquery-select2 webpack-encore

使用 Symfony 4 Webpack Encore ,我无法运行 Select2 。 我正在使用“ select2@4.0.3” 并以这种方式将其导入app.js:

import $  from 'jquery';
import 'bootstrap';
import 'select2';

我也尝试使用

Encore.autoProvidejQuery()

在webpack.config.js中(然后注意在app.js中注释 import $ from 'jquery'; 行,不要两次导入jquery)

我尝试了在其他答案中可以找到的所有东西,例如:

import select2 form 'select2';

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

select2($);

几乎所有的尝试都导致相同的错误: TypeError:$(...)。select2不是函数

编辑
现在工作。每次我对app.js进行更改(并重新构建)时,我都使用firefox devtool控制台检查其是否正常运行,但是即使问题已解决且select2正常运行,我也总是收到“ not a function”错误。这是因为我正在使用Webpack导致浏览器控制台不再识别select2()函数吗?

1 个答案:

答案 0 :(得分:0)

首先使用yarn安装它:

纱线添加select2 然后将其与require而非import一起使用:

require('select2')

在您的app.js文件中。

  

与require或import相同。

Babel将导入和导出声明转换为CommonJS(必需),使您可以动态加载模块。

因此,尽管它们看起来相同,但请务必始终使用require。