Bootstrap中是一种事实上的界面标准,标准到现在的网站大量的使用它。如果可以使用webpack引入的bootstrap.css,就可以一个npm install
完成项目的依赖,而不必手工的添加到html内。
本来以为在入口文件内加一行就行:
import 'bootstrap/dist/css/bootstrap.css'
然后安装依赖:
npm i bootstrap url url-loader style-loader css-loader --save
实际上却不是想象的那么简单。因为css文件内还引用了很多类型的字体文件和矢量图文件。要引入它,必须同时提供css之外的类型的对应的loader:
//webpack.config.js:
module.exports = {
entry: {
'1.js'
},
output: {
filename: 'bundle.js'
},
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:
// c.html
<html>
<body>
<ul class="nav nav-pills">
<li role="presentation" class="active"><a href="#">Home</a></li>
<li role="presentation"><a href="#">Profile</a></li>
<li role="presentation"><a href="#">Messages</a></li>
</ul>
<script type="text/javascript" src="bundle.js"></script>
</body>
</html>
再次执行转译:
webpack
打开浏览器:
open c.html
看到bootstrap那熟悉而太熟悉的界面。
引入jquery
如果需要使用bootstrap的js插件的话,就必须首先引入jquery。引用jquery的一个方法是使用webpack插件。
首先安装jquery:
npm i jquery
其次使用插件装入jquery,方法是修改webpack的配置文件,加入:
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
})
]
在入口文件内加入代码来做验证:
$("body").append("<div>hello world</div>")
如果成功,说明jquery加载成功。这样你就可以在入口js文件内加载bootstrap.js了:
import 'bootstrap/dist/js/bootstrap.js'
排除错误
我确实在引入bootstrap的时候,遇到一个神奇的错误。在webpack转译时报错,css-loader,unknown word样子的错误。对webpack.config.js文件加入一个include属性并指向到不存在的目录即可。
{
test: /\.css$/,
include: [
path.resolve(__dirname, "not_exist_path")
],
loader: "style!css"
}
原始的issue在此:https://github.com/webpack/cs... 。我看看看到此答案时以为是个玩笑。
关于
作者:刘传君
创建过产品,创过业。不好动,读书机器。
可以通过 1000copy#gmail.com 联系到我
出品
http小书 http://www.ituring.com.cn/boo...
Git小书 http://www.ituring.com.cn/boo...
参考搜索词
Writing client-side ES6 with webpack
Webpack 中文指南
webpack学习之路
https://github.com/ruanyf/web...
How to Use Bootstrap (CSS only) and Webpack
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。