Bootstrap中是一种事实上的界面标准,标准到现在的网站大量的使用它。如果可以使用webpack引入的bootstrap,就可以一个npm install完成项目的依赖,而不必手工的添加到html内。

  首先咱们在前端刚兴起的时候,是在html页面通过<script src='./js/bootstrap.js'> <link href='./css/bootstrap.css'>俩个标签引入bootstrap,在webpack中我们要引入它,也要分这俩个部分。

  1、 npm install bootstrap --save-dev    或者使用淘宝镜像   cnpm install bootstrap --save-dev;

    然后咱们在代码中引入bootstrap.js

    import 'bootstrap/dist/js/bootstrap.js';

    打包然后会发现有一个错误,没有找到全局的 jquery,需要我们去包管理器中下载jquery--  npm install jquery--save-dev

    配置plugins插件部分:

    plugins:[
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
}) ]

    在我们页面中输出一行 cosole.log($(document.body)) ; 可以看到输出内容是一个Jquery对象,说明jquery引入成功,但是bootstrap还是抛出了一个错误  “没有找到全局的 jquery”.其实我们可以换个思路,webpack是一个模块化打包工具,它打包的第三方模块是经过处理的,不会在全局创建一个接口,而bootstrap文件依赖于全局jquery,所以报错。

    首先来介绍我最为推荐的方法:ProvidePlugin + expose-loader

        plugins:[
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
'window.$':'jquery',
'window.jQuery':'jquery'
}) ]

  

       {
test:require.resolve('jquery'),
loader:'expose-loader?$!expose-loader?jQuery'
},

    ProvidePlugin的机制是:当webpack加载到某个js模块里,出现了未定义且名称符合(字符串完全匹配)配置中key的变量时,会自动require配置中value所指定的js模块。

如上述例子,当某个老式插件使用了jQuery.fn.extend(object),那么webpack就会自动引入jquery(此处我是用NPM的版本,我也推荐使用NPM的版本)。

另外,使用ProvidePlugin还有个好处,就是,你自己写的代码里,再!也!不!用!require!jQuery!啦!毕竟少写一句是一句嘛哈哈哈。

    有了ProvidePlugin为嘛还需要expose-loader?问得好,如果你所有的jQuery插件都是用webpack来加载的话,的确用ProvidePlugin就足够了;但理想是丰满的,现实却是骨感的,总有那么些需求是只能用<script>来加载的。

    第二部分 引入bootstrap.css

    第三部分 打造webpack 自定义bootstrap

    后续内容.....稍后

												

webpack 引入 bootstrap的更多相关文章

  1. Webpack 引入bootstrap

    Bootstrap中是一种事实上的界面标准,标准到现在的网站大量的使用它.如果可以使用webpack引入的bootstrap.css,就可以一个npm install完成项目的依赖,而不必手工的添加到 ...

  2. vue引入bootstrap——webpack

    想要在vue中引入bootstrap,引入的时候需要按照如下的步骤进行. 1.引入jquery 2.引入bootstrap   阅读本文前,应该能够搭建环境,使用vue-cli进行项目的创建,可以参考 ...

  3. vue项目引入bootstrap、jquery

    在进行vue的学习,项目中需要引入bootstrap.jquery的步骤. 一.引入jQuery 在当前项目的目录下(就是package.json),运行命令 cnpm install jquery ...

  4. vue-cli如何引入bootstrap工具

    以下操作以正常安装node环境为前提. 1.引入jq: 在npm控制台中,进入项目目录,然后输入指令npm install jquery --save-dev(npm换成cnpm更好,国内环境下使用c ...

  5. vue2.x利用脚手架快速构建项目并引入bootstrap、jquery

    要使用vue-cli脚手架搭建项目,首先需要安装node.js Node.js官网:https://nodejs.org/en/download/ 选择你对应的系统即可下载,下载完成后傻瓜式安装即可. ...

  6. Vue中引入bootstrap导致的CSS问题

    最近在进行vue.js+webpack进行模块化开发的时候,遇到一个奇怪的问题. 问题是这样的: 1. 在main.js文件中引入bootstrap的js和css. 2. 自己写了一个Header.v ...

  7. vuejs 使用vue-cli引入bootstrap

    前言:对于刚刚进入vuejs的队伍中的小白来讲,很多都是模糊的,js操作dom节点的思想萦绕,还不能自由切换在二者之间. 解决之道: 想要在vue中引入bootstrap,引入的时候需要按照如下的步骤 ...

  8. 在进行vue的学习,项目中需要引入bootstrap、jquery的步骤。

    在进行vue的学习,项目中需要引入bootstrap.jquery的步骤. 一.引入jQuery 在当前项目的目录下(就是package.json),运行命令 cnpm install jquery ...

  9. vue项目中引入bootstrap

    (1)引入Jquery文件,需要在bootstrap.min.js 之前引入. 1.npm install jquery --save-dev 2. plugins: [ new webpack.Pr ...

随机推荐

  1. Python对数据库的增删改查

    #!/usr/bin/env python   import MySQLdb   DATABASE_NAME = 'hero'   class HeroDB:     # init class and ...

  2. Object-C知识点 (四) 性能优化

    #pragma mark - 性能优化 1. 行高一定要缓存 缓存行高是解决性能优化的最佳途径(除非刷新频率已经很高了,否则一定要缓存)2. 尽量减少计算,所有需要素材提前计算好3. 控件不要设置圆角 ...

  3. Loadrunner--自动关联和手动关联

    2017-06-09 15:32:45个人也属于刚刚开始学习,有什么不对的地方敬请指导:qq:389791447 一开始的时候,准备去学习怎么去关联.一时也毛不着头脑,就在网上找了一些视频看,有的人说 ...

  4. VB6之WebBrowser控件

    UI短手或者GDI+用烦的童鞋可以借用WebBrowser打造漂亮的程序界面,只需要下载一个好看点的html代码就够了. 引用: Microsoft Html Object Library 部件: M ...

  5. Java异常体系简析

    最近在阅读<Java编程思想>的时候看到了书中对异常的描述,结合自己阅读源码经历,谈谈自己对异常的理解.首先记住下面两句话: 除非你能解决这个异常,否则不要捕获它,如果打算记录错误消息,那 ...

  6. Java自学手记——接口

    抽象类 1.当类和对象被abstract修饰符修饰的时候,就变成抽象类或者抽象方法.抽象方法一定要在抽象类中,抽象类不能被创建对象,如果需要使用抽象类中的抽象方法,需要由子类重写抽象类中的方法,然后创 ...

  7. 从零Wordpress建站经验分享,内附耗时间及成本

    5月末回国,工作进入空档期. 每天上班没有任务压身,日子过得反而更加难熬. 一直自己做一个网站,却总下不定决心,总是懒得迈出第一步. 正巧朋友需要建设一个宣传用网站. 外面的公司给他报价很高. 反正我 ...

  8. 使用C#创建Windows服务

    本文属于原创,转载请注明出处,谢谢! 一.开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NET版本:.NET Framework 4.0 目标平台:X86 ...

  9. QQ日迹Omi实战开发,从0到1

    写在前面 相信大家对Omi应该都不陌生了,如果还有不了解的同学先看看这里.了解并使用Omi之后你会发现真的回不去了~~~ 精通Omi框架 先简单说一下吧,Omi就是一个可以快速开发项目的组件化框架,和 ...

  10. Android之IPC(aidl)

    IPC(Inter-Process Conmunication) 进程间通讯 在同一进程中,各个组件进行通信是十分方便的,普通的函数调用就可以解决:但是,对于处于不同进程中的组件来说,要进行通信,就需 ...