美文网首页
在 react 项目里使用 bootstrap

在 react 项目里使用 bootstrap

作者: McDu | 来源:发表于2017-11-30 20:47 被阅读1197次

    背景描述:
    想使用 bootstrap + react + webpack + sass 开发项目时,

    1. npm install bootstrap -S , 配置 webpack.config.js:
    {
     test: /\.scss$/,
     use: ['style-loader', 'css-loader', 'postcss-loader', 'sass-loader']
    }
    
    1. 入口文件里引用 bootstrap:
    import 'bootstrap/dist/css/bootstrap.css';
    

    一. 报错:

    ERROR in ./node_modules/bootstrap/dist/css/bootstrap.css
    Module parse failed: Unexpected token (7:5)
    You may need an appropriate loader to handle this file type.
    |  */
    | /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
    | html {
    |   font-family: sans-serif;
    |   -webkit-text-size-adjust: 100%;
     @ ./app/app.jsx 17:0-43
    
    

    这个错误在网上死活找不到答案, 应该是缺少某些loader, 或者写的不正确, 我当时的配置是因为项目中只用到了 .scss 结尾的文件, 所以只设置了 test: /\.scss$/ 这样的规则, 一直报上面的错误.

    查了资料说引入 bootstrap 的时候要用 css-loader style-loader url-loader file-loader 等一大堆 loader 才能正确处理 bootstrap 里引用的 图片, 字体 等资源, 于是就找这些图片, 字体的匹配规则, 心力交瘁. 还是报上面的错误.

    吃了个饭, 想到不如用 bootstrap-loader, react-bootstrap 等替代方案, 于是去看看 bootstrap-loader 如何使用, universal-bootstrap-loader, 它的作用是加载 bootstrap 的样式和脚本到你的 webpack 最终打包的 bundle 中去.

    在它给出的 例子 中, 能够看到 webpack.dev.config.js 的配置, 把处理 bootstrap 资源的匹配规则粘过来, 如下, 正常启动了.

    二. 配置 webpack.config.js

    {
     test: /\.css$/,
     use: ['style-loader', 'css-loader']
    },
    {
     test: /\.scss$/,
     use: ['style-loader', 'css-loader', 'sass-loader']
    },
    {
     test: /\.woff2?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
     use: 'url-loader?limit=10000',
    },
    {
     test: /\.(ttf|eot|svg)(\?[\s\S]+)?$/,
     use: 'file-loader',
    }         
    

    参考资料:
    How To Import Bootstrap Using Webpack
    How to use Webpack with React and Bootstrap
    Webpack Configuration for Using Bootstrap in React

    相关文章

      网友评论

          本文标题:在 react 项目里使用 bootstrap

          本文链接:https://www.haomeiwen.com/subject/wmdbbxtx.html