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 bind 函数 使用闭包保存执行上下文
Dec 26 Javascript
JavaScript 布尔操作符解析  &amp;&amp; || !
Aug 10 Javascript
javascript使用定时函数实现跳转到某个页面
Dec 25 Javascript
jquery事件重复绑定的快速解决方法
Jan 03 Javascript
javascript数组去重小结
Mar 07 Javascript
Javascript中常用类型的格式化方法小结
Dec 26 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
Mar 01 Javascript
详解Angular2组件之间如何通信
Jun 22 Javascript
js构造函数创建对象是否加new问题
Jan 22 Javascript
Bootstrap实现的表格合并单元格示例
Feb 06 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
Mar 07 Javascript
JS如何实现在弹出窗口中加载页面
Dec 03 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
PHP6 mysql连接方式说明
2009/02/09 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
js 动态加载事件的几种方法总结
2013/12/25 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
Vue组件通信的四种方式汇总
2018/02/08 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
Vue-CLI 项目在pycharm中配置方法
2019/08/30 Javascript
python集合类型用法分析
2015/04/08 Python
Python中为什么要用self探讨
2015/04/14 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
售后服务承诺书模板
2014/05/21 职场文书
2015年公务员工作总结
2015/04/24 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang
javascript的setTimeout()使用方法总结
2021/11/20 Javascript
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis