Webpack如何引入bootstrap的方法


Posted in Javascript onJune 17, 2017

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

本来以为在入口文件内加一行就行:

import 'bootstrap/dist/css/bootstrapcss'

然后安装依赖:

npm i bootstrap url url-loader style-loader css-loader --save

实际上却不是想象的那么简单。因为css文件内还引用了很多类型的字体文件和矢量图文件。要引入它,必须同时提供css之外的类型的对应的loader:

//webpackconfigjs:
moduleexports = {
entry: {
'js'
},
output: {
filename: 'bundlejs'
},
module: {
loaders: [

{ test: /\css$/, loader: 'style-loader!css-loader' },
{ test: /\eot(\?v=\d+\\d+\\d+)?$/, loader: "file" },
{ test: /\(woff|woff2)$/, loader:"url?prefix=font/&limit=5000" },
{ test: /\ttf(\?v=\d+\\d+\\d+)?$/, loader: "url?limit=10000&mimetype=application/octet-stream" },
{ test: /\svg(\?v=\d+\\d+\\d+)?$/, loader: "url?limit=10000&mimetype=image/svg+xml" }
]
}
};

我们在html文件内使用那么一点点的bootstrap:

// chtml
<html>
<body>
<ul class="nav nav-pills">
<li role="presentation" class="active"><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Home</a></li>
<li role="presentation"><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Profile</a></li>
<li role="presentation"><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Messages</a></li>
</ul>
<script type="text/javascript" src="bundlejs"></script>
</body>
</html>

再次执行转译:

webpack

打开浏览器:

open chtml

看到bootstrap那熟悉而太熟悉的界面。

引入jquery

如果需要使用bootstrap的js插件的话,就必须首先引入jquery。引用jquery的一个方法是使用webpack插件。

首先安装jquery:

npm i jquery

其次使用插件装入jquery,方法是修改webpack的配置文件,加入:

plugins: [
new webpackProvidePlugin({
$: "jquery",
jQuery: "jquery"
})
]

在入口文件内加入代码来做验证:

$("body")append("<div>hello world</div>")

如果成功,说明jquery加载成功。这样你就可以在入口js文件内加载bootstrapjs了:

import 'bootstrap/dist/js/bootstrapjs'

排除错误

我确实在引入bootstrap的时候,遇到一个神奇的错误。在webpack转译时报错,css-loader,unknown word样子的错误。对webpackconfigjs文件加入一个include属性并指向到不存在的目录即可。

{
test: /\css$/,
include: [
pathresolve(__dirname, "not_exist_path")
],
loader: "style!css"
}

原始的issue在此:https://githubcom/webpack/cs 。我看看看到此答案时以为是个玩笑。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js(jQuery)获取时间的方法及常用时间类搜集
Oct 23 Javascript
利用js读取动态网站从服务器端返回的数据
Feb 10 Javascript
jQuery动态背景图片效果实现方法
Jul 03 Javascript
jQuery拖拽通过八个点改变div大小
Nov 29 Javascript
Bootstrap源码解读下拉菜单(4)
Dec 23 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
Feb 21 Javascript
JavaScript阻止表单提交方法(附代码)
Aug 15 Javascript
详解node服务器中打开html文件的两种方法
Sep 18 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
Jul 09 Javascript
如何用原生js写一个弹窗消息提醒插件
May 24 Javascript
vue学习笔记之slot插槽用法实例分析
Feb 29 Javascript
JS代码编译器Monaco使用方法
Jun 11 Javascript
Webpack执行命令参数详解
Jun 17 #Javascript
JS实现留言板功能
Jun 17 #Javascript
利用vscode编写vue的简单配置详解
Jun 17 #Javascript
JavaScript用二分法查找数据的实例代码
Jun 17 #Javascript
JS实现新建文件夹功能
Jun 17 #Javascript
vue-router路由参数刷新消失的问题解决方法
Jun 17 #Javascript
JS实现商品筛选功能
Aug 19 #Javascript
You might like
基于mysql的论坛(2)
2006/10/09 PHP
自己写了一个php检测文件编码的函数
2014/04/21 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
2016/06/15 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
Vue使用vue-cli创建项目
2017/09/01 Javascript
angular中ui calendar的一些使用心得(推荐)
2017/11/03 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
2019/08/27 Javascript
微信小程序使用echarts获取数据并生成折线图
2019/10/16 Javascript
vue跳转方式(打开新页面)及传参操作示例
2020/01/26 Javascript
Vue.js的模板语法详解
2020/02/16 Javascript
vue中的使用token的方法示例
2020/03/10 Javascript
OpenLayers实现图层切换控件
2020/09/25 Javascript
python实现自动登录人人网并访问最近来访者实例
2014/09/26 Python
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
使用Python AIML搭建聊天机器人的方法示例
2018/07/09 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
python实现接口并发测试脚本
2019/06/25 Python
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
保加利亚运动鞋购物网站:SneakerStudio.bg
2020/12/23 全球购物
商务英语专业求职信范文
2014/01/28 职场文书
预备党员介绍人意见
2015/06/01 职场文书
《游戏王:大师决斗》将推出新卡牌包4月4日上线
2022/03/31 其他游戏