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

  1. import 'bootstrap/dist/css/bootstrap.css'

复制代码

然后安装依赖:

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

复制代码

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

  1. //webpack.config.js:
  2. module.exports = {
  3. entry: {
  4. '1.js'
  5. },
  6. output: {
  7. filename: 'bundle.js'
  8. },
  9. module: {
  10. loaders: [
  11. { test: /\.css$/, loader: 'style-loader!css-loader' },
  12. { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: "file" },
  13. { test: /\.(woff|woff2)$/, loader:"url?prefix=font/&limit=5000" },
  14. { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/octet-stream" },
  15. { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=image/svg+xml" }
  16. ]
  17. }
  18. };

复制代码

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

  1. // c.html
  2. <html>
  3. <body>
  4. <ul class="nav nav-pills">
  5. <li role="presentation" class="active"><a href="#">Home</a></li>
  6. <li role="presentation"><a href="#">Profile</a></li>
  7. <li role="presentation"><a href="#">Messages</a></li>
  8. </ul>
  9. <script type="text/javascript" src="bundle.js"></script>
  10. </body>
  11. </html>

复制代码

再次执行转译:

  1. webpack

复制代码

打开浏览器:

  1. open c.html

复制代码

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

引入jquery

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

首先安装jquery:

  1. npm i jquery

复制代码

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

  1. plugins: [
  2. new webpack.ProvidePlugin({
  3. $: "jquery",
  4. jQuery: "jquery"
  5. })
  6. ]

复制代码

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

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

复制代码

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

  1. import 'bootstrap/dist/js/bootstrap.js'

复制代码

排除错误

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

  1. {
  2. test: /\.css$/,
  3. include: [
  4. path.resolve(__dirname, "not_exist_path")
  5. ],
  6. loader: "style!css"
  7. }

复制代码

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

Webpack 引入bootstrap的更多相关文章

  1. webpack 引入 bootstrap

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

  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语言中的AOP利器:装饰器

    一.前言 面向切面编程(AOP)是一种编程思想,与OOP并不矛盾,只是它们的关注点相同.面向对象的目的在于抽象和管理,而面向切面的目的在于解耦和复用. 举两个大家都接触过的AOP的例子: 1)java ...

  2. 第5章 PCIe总线的事务层

    事务层是PCIe总线层次结构的最高层,该层次将接收PCIe设备核心层的数据请求,并将其转换为PCIe总线事务,PCIe总线使用的这些总线事务在TLP头中定义.PCIe总线继承了PCI/PCI-X总线的 ...

  3. Android常见Crash类型分析(一)

    问题1.   java.lang.IllegalStateException: The specified child already has a parent. You must call remo ...

  4. Flex下拉框

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  5. 在visual studio 2017中配置Qt

    简述 这两天因为软件工程课要用vs2017写一个C++的GUI界面,就打算学习Qt,但是vs2017配置起Qt来不像vs2013,15那么简单,而且现在网上对于vs2017配置Qt的教程很少,也不详细 ...

  6. 常用的freemark语法(三)

    一,符号的意义 1.0,单问号 ?后面要加关键字,例如:<#if object?exists>object对象不为空</#if> <#if str??>${str? ...

  7. Readis For Windows安装及密码、IP限制

    一.下载与安装Readis Github下载地址:https://github.com/MicrosoftArchive/redis/tags 下载.MSI后下一步安装即可 二.验证安装 1. 在&q ...

  8. Servlet程序

    编写: (1)搭建javaweb项目: 1,创建一个java项目:HelloServletWeb 2,在HelloServletWeb中创建一个文件夹webapp表示Web的根 3,在webapp中创 ...

  9. 关于vue学习中的一些

    1.Jinkey大神的新手入门攻略 2.小凡vuejs2的视频地址 3.网友翻译的vuejs2官方中文文档 部分报错处理: 1.错误一 vue.js?b6db:2611[Vue warn]: Unkn ...

  10. Android集成百度地图详细步骤和错误问题

    先看要实现的效果 第一步, 下载SDK,基础配置,百度开发文档很详细,直接附上链接http://lbsyun.baidu.com/index.php?title=androidsdk/guide/cr ...