我试图使一个结构,我已经获得了一个现成的主题兼容搜索引擎优化。我现在的处境就像我在下面的例子一样。当我使用,npm,运行dev,,在终端中没有错误,但是开发者控制台响应,如下图所示。
正如您所看到的,TypeError: grid.imagesLoaded不是一个函数。我正在使用webpack在Laravel,并且已经包括了imagesloaded.pkgd.min.js
以下是代码:
webpack.mix.js
const mix = require('laravel-mix');
mix.js('resources/js/app.js', 'public/js')
.postCss('resources/css/app.css', 'public/css', [
require('postcss-import'),
require('tailwindcss'),
])
.webpackConfig(require('./webpack.config'));
/* Custom Mix Assets */
mix.styles([
'public/guest/css/bootstrap-custom.css',
'public/guest/css/ionicons.min.css',
'public/guest/css/tiny-slider.css',
'public/guest/css/lity.min.css',
'public/guest/css/simplebar.min.css',
'public/guest/css/jquery.mb.YTPlayer.min.css',
'public/guest/css/main.css',
'public/guest/css/colors/main-darkblue.css',
'public/guest/css/custom.css',
], 'public/css/bundle.css').sourceMaps().version();
mix.js([
'public/guest/js/jquery.min.js',
'public/guest/js/bootstrap.bundle.min.js',
'public/guest/js/imagesloaded.pkgd.min.js',
'public/guest/js/isotope.pkgd.min.js',
'public/guest/js/animatedModal.js',
'public/guest/js/tiny-slider.js',
'public/guest/js/lity.min.js',
'public/guest/js/simplebar.min.js',
//'public/guest/js/jquery.mb.YTPlayer.min.js',
'public/guest/js/main.js',
'public/guest/js/custom.js',
], 'public/js/bundle.js').version();
mix.webpackConfig(webpack => {
return {
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery',
lity: 'lity',
imagesLoaded: 'imagesLoaded'
})
]
};
});package.json
{
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "npm run development -- --watch",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --disable-host-check --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"@tailwindcss/ui": "^0.6.0",
"alpinejs": "^2.7.3",
"axios": "^0.21.1",
"cross-env": "^7.0.3",
"laravel-mix": "^5.0.1",
"lodash": "^4.17.19",
"postcss-import": "^12.0.1",
"resolve-url-loader": "^3.1.0",
"tailwindcss": "^1.8.0",
"vue-template-compiler": "^2.6.12",
"jquery": "3.4.1",
"lity": "^2.4.1",
"imagesloaded": "^4.1.4"
}
}main.js
(function() {
/* Setup Isotope */
var grid = $('.portfolio-section .portfolio-grid');
var filters = $('.portfolio-section .filter-control li');
grid.imagesLoaded(function() {
grid.isotope({
itemSelector: '.portfolio-section .single-item',
masonry: {
horizontalOrder: true
}
});
filters.on('click', function() {
filters.removeClass('tab-active');
$(this).addClass('tab-active');
var selector = $(this).data('filter');
grid.isotope({
filter: selector,
transitionDuration: '.25s'
});
});
});
}());发布于 2021-03-07 13:07:06
我将以下代码添加到main.js文件的开头,并解决了错误
var imagesLoaded = require('imagesloaded');
var Isotope = require('isotope-layout');
var jQueryBridget = require('jquery-bridget');
imagesLoaded.makeJQueryPlugin( $ );
jQueryBridget( 'isotope', Isotope, $ );这是最终版本
webpack.mix.js
const mix = require('laravel-mix');
mix.js('resources/js/app.js', 'public/js')
.postCss('resources/css/app.css', 'public/css', [
require('postcss-import'),
require('tailwindcss'),
])
.webpackConfig(require('./webpack.config'));
/* Custom Mix Assets */
mix.styles([
'public/guest/css/bootstrap-custom.css',
'public/guest/css/ionicons.min.css',
'public/guest/css/tiny-slider.css',
'public/guest/css/lity.min.css',
'public/guest/css/simplebar.min.css',
'public/guest/css/jquery.mb.YTPlayer.min.css',
'public/guest/css/main.css',
'public/guest/css/colors/main-darkblue.css',
'public/guest/css/custom.css',
], 'public/css/bundle.css').sourceMaps().version();
mix.js([
//'public/guest/js/jquery.min.js',
//'public/guest/js/bootstrap.bundle.min.js',
//'public/guest/js/imagesloaded.pkgd.min.js',
//'public/guest/js/isotope.pkgd.min.js',
'public/guest/js/animatedModal.js',
//'public/guest/js/tiny-slider.js',
//'public/guest/js/lity.min.js',
//'public/guest/js/simplebar.min.js',
//'public/guest/js/jquery.mb.YTPlayer.min.js',
'public/guest/js/main.js',
'public/guest/js/custom.js',
], 'public/js/bundle.js').version();
mix.webpackConfig(webpack => {
return {
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery',
lity: 'lity',
imagesLoaded: 'imagesLoaded'
})
]
};
});package.json
{
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "npm run development -- --watch",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --disable-host-check --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"@tailwindcss/ui": "^0.6.0",
"alpinejs": "^2.7.3",
"axios": "^0.21.1",
"bootstrap": "4.3.1",
"cross-env": "^7.0.3",
"imagesloaded": "^4.1.4",
"isotope-layout": "^3.0.6",
"jquery": "^3.6.0",
"jquery.mb.ytplayer": "^3.3.8",
"laravel-mix": "^5.0.1",
"lity": "2.4.0",
"lodash": "^4.17.19",
"postcss-import": "^12.0.1",
"resolve-url-loader": "^3.1.0",
"simplebar": "4.2.3",
"tailwindcss": "^1.8.0",
"tiny-slider": "^2.9.3",
"vue-template-compiler": "^2.6.12",
"jquery-bridget": "^3.0.0"
}
}https://stackoverflow.com/questions/66515807
复制相似问题