【问题标题】:Import Bootstrap & plugin Carousel with Webpack Encore使用 Webpack Encore 导入 Bootstrap 和插件 Carousel
【发布时间】:2021-10-12 04:39:29
【问题描述】:

我正在使用 Webpack Encore 处理 Symfony 项目,但在加载 Bootstrap 和插件 Carousel 时遇到问题。

它可能来自 Bootstrap 的导入,因为当我导入文件时它似乎工作(但不完全):

import './styles/bootstrap.min.css';

但是当我从“node_modules”正确导入包时,滑块根本不起作用:

import 'bootstrap';

并且控制台中没有错误。 这是我的代码:

app.css

@import '~bootstrap';
@import url('https://maps.googleapis.com/maps/api/js?language=en');
@import url('https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700');

app.js

//import './styles/bootstrap.min.css';
import 'bootstrap';

slider.js

import jQuery from 'jquery';

// make Carousel a jQuery plugin
import Carousel from 'bootstrap/js/dist/carousel';
import jQueryBridget from 'jquery-bridget';
jQueryBridget('carousel', Carousel, jQuery);

;(function ($, window, document, undefined) {
    $(document).ready(function () {
        $('.carousel').carousel({
            interval: 10000
        });
    });
})(jQuery, window, document);

【问题讨论】:

    标签: javascript bootstrap-5 webpack-encore bootstrap-carousel


    【解决方案1】:

    首先:尝试了解您在做什么。虽然 Webpack 用于编译 JavaScript modules,但 jQuery 是在 JS 还没有那么现代时开发的库。如今,you might not need jQuery 了。因此,您将现代 JS 与传统 JS 结合起来。虽然它可以工作,但如果您不需要它,请不要尝试。

    Bootstrap 5 不需要 jQuery。那么为什么要使用它呢?看一下来自Bootstrap's own documentation的例子:

    var myCarousel = document.querySelector('#myCarousel')
    var carousel = new bootstrap.Carousel(myCarousel, {
      interval: 2000,
      wrap: false
    })
    

    所以这应该足够了:

    var myCarousel = document.querySelector('.carousel')
    var carousel = new bootstrap.Carousel(myCarousel, {
      interval: 1000
    })
    

    既然你有similar problems before,我真的建议你阅读你想使用的库的文档。通常它们会提供你可以使用的好例子。

    TL;DR:停止使用 jQuery 并开始阅读文档。

    【讨论】:

    • 感谢您的建议,我一定会遵循的。但在这种情况下,我必须为客户端使用模板Prague,而jQuery 已经被少数插件使用。您认为我必须重写所有代码,还是第一步有更简单的解决方案?
    • 如果您不需要 jQuery,请不要使用它。如果项目中有 jQuery,那并不意味着项目中的每个人都必须使用它。您不需要重写所有代码,但对于这种特定情况(Bootstrap Carousel),您不需要 jQuery。
    • 明白了!非常感谢花时间回答,很有帮助
    猜你喜欢
    • 2019-03-31
    • 2020-05-23
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多