简单的webpack- 引入bootstrap

本文介绍如何使用Webpack加载Bootstrap样式及字体资源,并通过配置解决依赖问题,实现一键安装依赖。

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... 。我看看看到此答案时以为是个玩笑。


其他3篇相关文章也记录一下:

https://segmentfault.com/a/1190000006630500

https://segmentfault.com/a/1190000006633746

https://segmentfault.com/a/1190000006634136

[webpack-cli] Would you like to install 'webpack-dev-server' package? (That will run 'npm install -D webpack-dev-server'npm error code ERESOLVE npm error ERESOLVE could not resolve npm error npm error While resolving: babel-loader@10.0.0 npm error Found: webpack@3.1.0 npm error node_modules/webpack npm error peer webpack@"^3.1.0" from extract-text-webpack-plugin@3.0.2 npm error node_modules/extract-text-webpack-plugin npm error dev extract-text-webpack-plugin@"^3.0.2" from the root project npm error peer webpack@"^2.0.0 || ^3.0.0 || ^4.0.0" from friendly-errors-webpack-plugin@1.7.0 npm error node_modules/friendly-errors-webpack-plugin npm error dev friendly-errors-webpack-plugin@"^1.7.0" from the root project npm error 2 more (uglifyjs-webpack-plugin, the root project) npm error npm error Could not resolve dependency: npm error peer webpack@">=5.61.0" from babel-loader@10.0.0 npm error node_modules/babel-loader npm error dev babel-loader@"^10.0.0" from the root project npm error npm error Conflicting peer dependency: webpack@5.102.1 npm error node_modules/webpack npm error peer webpack@">=5.61.0" from babel-loader@10.0.0 npm error node_modules/babel-loader npm error dev babel-loader@"^10.0.0" from the root project npm error npm error Fix the upstream dependency conflict, or retry npm error this command with --force or --legacy-peer-deps npm error to accept an incorrect (and potentially broken) dependency resolution. npm error npm error npm error For a full report see: npm error D:\XiaZai\Node\node_cache\_logs\2025-11-13T09_45_26_239Z-eresolve-report.txt npm error A complete log of this run can be found in: D:\XiaZai\Node\node_cache\_logs\2025-11-13T09_45_26_239Z-debug-0.log [webpack-cli] You need to install 'webpack-dev-server' for running 'webpack serve'. Error: Cannot find module 'webpack-dev-server' Require stack: - D:\XiaZai\Node\node_global\node_modules\webpack-cli\node_modules\@webpack-cli\serve\lib\index.js - D:\XiaZai\Node\node_global\node_modules\webpack-cli\lib\webpack-cli.js - D:\XiaZai\Node\node_global\node_modules\webpack-cli\lib\bootstrap.js - D:\XiaZai\Node\node_global\node_modules\webpack-cli\bin\cli.js - D:\WorkClamp\jin-lun-zhang\node_modules\webpack-dev-server\bin\webpack-dev-server.js
最新发布
11-14
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值