首页
学习
活动
专区
圈层
工具
发布

Webpack 2加载、公开和绑定jquery和bootstrap

Webpack 2 加载、公开和绑定 jQuery 和 Bootstrap

基础概念

Webpack 是一个现代 JavaScript 应用程序的静态模块打包工具。当需要在前端项目中使用 jQuery 和 Bootstrap 时,Webpack 可以帮助我们有效地管理这些依赖关系。

解决方案

1. 安装必要依赖

首先需要安装相关依赖包:

代码语言:txt
复制
npm install jquery bootstrap --save
npm install webpack webpack-cli --save-dev

2. 配置 Webpack

创建一个 webpack.config.js 文件,配置如下:

代码语言:txt
复制
const webpack = require('webpack');
const path = require('path');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
  plugins: [
    new webpack.ProvidePlugin({
      $: 'jquery',
      jQuery: 'jquery',
      'window.jQuery': 'jquery'
    })
  ],
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      {
        test: /\.(woff|woff2|eot|ttf|otf)$/,
        use: ['file-loader']
      },
      {
        test: /\.(png|svg|jpg|gif)$/,
        use: ['file-loader']
      }
    ]
  }
};

3. 在项目中引入 jQuery 和 Bootstrap

在入口文件 src/index.js 中:

代码语言:txt
复制
import 'bootstrap/dist/css/bootstrap.min.css';
import 'bootstrap/dist/js/bootstrap.min.js';

// 现在 jQuery 和 Bootstrap 都可用
$(document).ready(function() {
  console.log('jQuery and Bootstrap are ready!');
});

4. 处理 Bootstrap 的依赖

Bootstrap 4+ 依赖 Popper.js,需要额外安装:

代码语言:txt
复制
npm install popper.js --save

然后在 webpack 配置中添加:

代码语言:txt
复制
new webpack.ProvidePlugin({
  $: 'jquery',
  jQuery: 'jquery',
  'window.jQuery': 'jquery',
  Popper: ['popper.js', 'default']
})

优势

  1. 模块化管理:Webpack 可以有效地管理 jQuery 和 Bootstrap 的依赖关系
  2. 按需加载:可以只加载项目中实际使用的部分
  3. 全局可用:通过 ProvidePlugin 使 jQuery 在所有模块中可用
  4. 资源优化:可以压缩和合并资源文件

常见问题及解决方案

问题1:jQuery 未定义

原因:没有正确配置 ProvidePlugin 或 jQuery 没有正确引入

解决方案

  1. 确保 webpack 配置中正确设置了 ProvidePlugin
  2. 检查 jQuery 是否已安装

问题2:Bootstrap 样式不生效

原因:CSS 加载器配置不正确或 Bootstrap CSS 文件未正确引入

解决方案

  1. 确保安装了 style-loader 和 css-loader
  2. 检查是否正确引入了 Bootstrap 的 CSS 文件

问题3:Bootstrap JavaScript 功能失效

原因:可能缺少 Popper.js 依赖或 Bootstrap JS 未正确引入

解决方案

  1. 安装 Popper.js
  2. 确保 webpack 配置中正确提供了 Popper.js
  3. 检查是否正确引入了 Bootstrap 的 JS 文件

应用场景

  1. 传统网站现代化改造
  2. 需要 jQuery 插件的项目
  3. 快速原型开发
  4. 需要 Bootstrap 组件库的项目

完整示例代码

package.json 示例:

代码语言:txt
复制
{
  "name": "webpack-jquery-bootstrap",
  "version": "1.0.0",
  "scripts": {
    "build": "webpack"
  },
  "dependencies": {
    "bootstrap": "^4.6.0",
    "jquery": "^3.6.0",
    "popper.js": "^1.16.1"
  },
  "devDependencies": {
    "css-loader": "^5.2.6",
    "file-loader": "^6.2.0",
    "style-loader": "^2.0.0",
    "webpack": "^5.38.1",
    "webpack-cli": "^4.7.2"
  }
}

按照上述配置完成后,运行 npm run build 即可生成包含 jQuery 和 Bootstrap 的打包文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

jQuery 事件绑定 和 JavaScript 原生事件绑定

总结一下:jQuery 事件绑定 和 JavaScript 原生事件绑定 及 区别 jQuery 事件绑定 jQuery 中提供了四种事件监听绑定方式,分别是 bind、live、delegate、on...最常用的一种 自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。...JavaScript支持在标签中直接绑定事件 2.在JavaScript代码中onXXX绑定:在JavaScript代码中绑定事件可以使JavaScript代码与HTML标签分离,文档结构清晰,便于管理和开发...",myAlert); 3 4 function myAlert(){ 5 6 alert("我是对话框"); 7 8 } jQuery 事件绑定和 JavaScript 事件绑定的区别...看一下示例代码: 1 /* jQuery 绑定事件 */ 2 $(".cnd").click(function(){ 3 console.log("first")} 4

6.5K20
  • Vue CLI3.0 中使用jQuery 和 Bootstrap

    Vue 中使用 jQuery 和 Bootstrap 不是特别符合 Vue 原生的写法,但是有时候又要用,所以放上我的引入设置,供大家参考。...在 Vue CLI2.0 中引入 jQuery 和 Bootstrap 需要设置很多配置项,网上有很多方法法,这里不重复写了。直接上 Vue CLI3.0 配置步骤。...第一步:安装 jQuery、 Bootstrap、popper.js依赖。 其中popper.js 用于在 Bootstrap 中显示弹窗、提示、下拉菜单,所以需要引入。...npm install jquery bootstrap@3 popper.js --save 注意:上面的 bootstrap@3 指的是安装 Bootstrap 第三版,如果不加 @3 符号,默认安装第四版...template> export default { name: "componentsTooltips", mounted: function() { //在页面加载完毕后初始化

    1.1K20

    Jquery前端分页插件pagination同步加载和异步加载

    上一篇文章介绍了Jquery前端分页插件pagination的基本使用方法和使用案例,大致原理就是一次性加载所有的数据再分页。...,数据太多了,一次性加载不出来,卡的很,和后台商量了一下,得出了一个简单的思路,当前页数和显示的条数即可,解决方案如下: 分批加载数据,前端分页(实现异步加载) js代码: $(function...自荐前端干货: 进阶攻略|前端最全的框架总结:https://www.jianshu.com/p/2a8ce7075d79 web开发快速提高工作效率的一些资源:https://www.jianshu.com...九款优秀的企业项目协作工具推荐:https://www.jianshu.com/p/7df25e438610 移动端手势的七个事件库:https://www.jianshu.com/p/0754d5daa27e Bootstrap...相关优质项目学习清单:https://www.jianshu.com/p/80d229e7fedc 2018前端越来越流行的的技术:https://www.jianshu.com/p/d4af2aa96cee

    4.3K30

    Jquery前端分页插件pagination同步加载和异步加载

    上一篇文章介绍了Jquery前端分页插件pagination的基本使用方法和使用案例,大致原理就是一次性加载所有的数据再分页。...,一下子加载不出来,就会导致页面间的短暂空白,如果遇上网速不好,那差不多就是一个不完美的bug 一次性加载数据,前端分页 上一篇文章中提到的原理js代码如下: $(function() {...,数据太多了,一次性加载不出来,卡的很,和后台商量了一下,得出了一个简单的思路,当前页数和显示的条数即可,解决方案如下: 分批加载数据,前端分页(实现异步加载) js代码: $(function...} }); }; }); 评价:分页插件pagination 此插件是jQuery...如果你用到此插件作分页的时候,涉及到的数据量大,可以采用异步加载数据,当数据不多的时候,直接一次性加载,方便简单。

    27500

    移动端滚动加载-----jQuery 和 原生JS

    判断滚动条到底部,需要用到DOM的三个属性值,使用jQuery分别是: $('body').scrollTop()为滚动条在Y轴上的滚动距离。...',isScrollBottom); 2.判断滚动条已滚动到底部 $('body').height() - $('body').scrollTop() - $(window).height() <...; } } //重新启动滚动监听事件,放入ajax成功函数的最后执行 //如果再次绑定未在ajax中执行,则可以在ajax过后进行延迟绑定...bodyScrollTop : documentScrollTop;   return scrollTop; } 2.文档的总高度 function getScrollHeight(){   var scrollHeight...('scroll',isScrollB0ttom ,false);   } }; 注意: 1.每次满足滑动到底部进入判断先解除监听事件; 2.每次加载数据渲染完后,必须再次绑定监听事件; 3.判断触发条件使用一个小的范围

    23.4K10

    用 jQuery 和 Bootstrap 在 WordPress 中添加进度条

    方法还是有挺多的,很多JavaScript的库都可以实现这个功能,但是因为WordPress里已经自动加载了jQuery了,所以就不想再引入其他库了,而且这个需求也很简单,用jQuery就足够了。...写CSS是我的弱项,所以我就选择了Bootstrap,完整版的太臃肿了,包含了太多不需要的东西,完整引入也有可能会把现有主题搞乱,所以在 Bootstrap官网上定制化下载了一个最简版的,只包含alert...和 progress部分,其他部分都不要。...因为这是一个页面,slug是genesis-explained,所以就叫page-genesis-explained.php,加入以下代码,作用就是用add_action()把上面的JavaScript脚本和CSS.../js/bootstrap-processbar.js', array( 'jquery' ), CHILD_THEME_VERSION, true

    1.9K40

    前端大牛们都学过哪些东西?

    + nodejs 吕大豹 Angularjs AngularJS 最佳实践 Angular的一些扩展指令 Angular数据绑定原理 一些扩展Angular UI组件 Ember和AngularJS的性能测试...开发指南 angularjs 英文资料 angular bootstrap angular jq mobile angular ui 整合jQuery Mobile+AngularJS经验谈 有jQuery...和 React 小书 - 前端乱炖 Webpack 和 React 小书 - gitbook webpack Webpack,101入门体验 webpack入门教程 基于webpack搭建前端工程解决方案探索...页面加载中的图片性能优化 web前端优化(基于Yslow) 网站性能优化工具大全 【高性能前端1】高性能HTML 【高性能前端2】高性能CSS 由12306谈谈网站前端性能和后端性能优化 AlloyTeam...chrome profiles3 chrome移动版调试 chrome调试 chrome的调试 chrome console 命令详解 查看事件绑定1 查看事件绑定2 神器——Chrome开发者工具(一

    5.6K30

    史上最全的前端资源大汇总

    + nodejs 吕大豹 Angularjs AngularJS 最佳实践 Angular的一些扩展指令 Angular数据绑定原理 一些扩展Angular UI组件 Ember和AngularJS的性能测试...开发指南 angularjs 英文资料 angular bootstrap angular jq mobile angular ui 整合jQuery Mobile+AngularJS经验谈 有jQuery...和React小书-前端乱炖 Webpack和React小书-gitbook webpack Webpack,101入门体验 webpack入门教程 基于webpack搭建前端工程解决方案探索 9....1 查看事件绑定2 神器——Chrome开发者工具(一 奇趣百科性能优化(Chrome DevTools 中的 Timeline Profils 等工具使用介绍 chrome 开发者工具的 15 个小技巧...优秀JavaScript项目 ---- Angular和Webpack种子文件 Fis3面向前端的工程构建系统 Fis3 DEMO 前端JQuery系列:源码剖析 avalon框架 Microsoft

    14.2K61
    领券