Webpack Encore & jQuery 插件:$(...).isotope 不是函数
Webpack Encore & jQuery plugin : $(...).isotope is not a function
我正在使用 Yarn 和 jQuery 开发一个 Symfony5 项目。当我尝试将 jQuery 插件“isotope-layout”与 Webpack Encore 一起使用时出现错误。
我花了很多时间尝试修复它,但我可能没有以正确的方式修复它。
这是我的代码:
webpack.config.js
// Same error with or without "autoProvidejQuery"
Encore.autoProvidejQuery();
app.js
import 'jquery';
import 'popper.js';
import 'bootstrap';
import 'isotope-layout';
// start the Stimulus application
import './bootstrap';
custom.js
import jQuery from 'jquery';
import 'isotope-layout';
(function ($) {
// Here is the error :
$(...).isotope({...});
})(jQuery);
错误:
Uncaught TypeError: $(...).isotope is not a function
使用同位素时不必使用 jQuery。您可以使用 their Webpack documentation:
中的示例
var Isotope = require('isotope-layout');
var iso = new Isotope( '.grid', {
// options...
});
如果你想使用jQuery,这里还有一个例子。要安装它:
npm install jquery
npm install jquery-bridget
比:
var $ = require('jquery');
var jQueryBridget = require('jquery-bridget');
var Isotope = require('isotope-layout');
// make Isotope a jQuery plugin
jQueryBridget( 'isotope', Isotope, $ );
// now you can use $().isotope()
$('.grid').isotope({
// options...
});
如果您使用的是现代 Javascript(并且您使用的是 Webpack,太棒了!),在很多情况下 you might not need jQuery。
我正在使用 Yarn 和 jQuery 开发一个 Symfony5 项目。当我尝试将 jQuery 插件“isotope-layout”与 Webpack Encore 一起使用时出现错误。
我花了很多时间尝试修复它,但我可能没有以正确的方式修复它。
这是我的代码:
webpack.config.js
// Same error with or without "autoProvidejQuery"
Encore.autoProvidejQuery();
app.js
import 'jquery';
import 'popper.js';
import 'bootstrap';
import 'isotope-layout';
// start the Stimulus application
import './bootstrap';
custom.js
import jQuery from 'jquery';
import 'isotope-layout';
(function ($) {
// Here is the error :
$(...).isotope({...});
})(jQuery);
错误:
Uncaught TypeError: $(...).isotope is not a function
使用同位素时不必使用 jQuery。您可以使用 their Webpack documentation:
中的示例var Isotope = require('isotope-layout');
var iso = new Isotope( '.grid', {
// options...
});
如果你想使用jQuery,这里还有一个例子。要安装它:
npm install jquery
npm install jquery-bridget
比:
var $ = require('jquery');
var jQueryBridget = require('jquery-bridget');
var Isotope = require('isotope-layout');
// make Isotope a jQuery plugin
jQueryBridget( 'isotope', Isotope, $ );
// now you can use $().isotope()
$('.grid').isotope({
// options...
});
如果您使用的是现代 Javascript(并且您使用的是 Webpack,太棒了!),在很多情况下 you might not need jQuery。