Webpack and bundlers

      Learn how to include Bootstrap in your project using Webpack or other bundlers.

      Installing Bootstrap

      Install bootstrap as a Node.js module using npm.

      Importing JavaScript

      Import Bootstrap’s JavaScript by adding this line to your app’s entry point (usually index.js or app.js):

      // You can specify which plugins you need
      import { Tooltip, Toast, Popover } from 'bootstrap';
      

      Alternatively, if you only need just a few of our plugins, you may import plugins individually as needed:

      import Alert from 'bootstrap/js/dist/alert';
      ...
      

      Bootstrap depends on Popper, which is specified in the peerDependencies property. This means that you will have to make sure to add it to your package.json using npm install @popperjs/core.

      Importing Styles

      Importing Precompiled Sass

      To enjoy the full potential of Bootstrap and customize it to your needs, use the source files as a part of your project’s bundling process.

      First, create your own _custom.scss and use it to override the built-in custom variables. Then, use your main Sass file to import your custom variables, followed by Bootstrap:

      @import "custom";
      @import "~bootstrap/scss/bootstrap";
      

      For Bootstrap to compile, make sure you install and use the required loaders: sass-loader, postcss-loader with Autoprefixer. With minimal setup, your webpack config should include this rule or similar:

      // ...
      {
      test: /\.(scss)$/,
      use: [{
      // inject CSS to page
          loader: 'style-loader'
      }, {
      // translates CSS into CommonJS modules
          loader: 'css-loader'
      }, {
      // Run postcss actions
          loader: 'postcss-loader',
      options: {
        // `postcssOptions` is needed for postcss 8.x;
            // if you use postcss 7.x skip the key
            postcssOptions: {
          // postcss plugins, can be exported to postcss.config.js
              plugins: function () {
            return [
              require('autoprefixer')
            ];
          }
        }
      }
      }, {
      // compiles Sass to CSS
          loader: 'sass-loader'
      }]
      }
      // ...
      

      Importing Compiled CSS

      Alternatively, you may use Bootstrap’s ready-to-use CSS by simply adding this line to your project’s entry point:

      import 'bootstrap/dist/css/bootstrap.min.css';
      

      In this case you may use your existing rule for css without any special modifications to webpack config, except you don’t need sass-loader just style-loader and css-loader.

      // ...
      module: {
      rules: [
      {
        test: /\.css$/,
        use: [
          'style-loader',
          'css-loader'
        ]
      }
      ]
      }
      // ...
      
      返回頂部
      主站蜘蛛池模板: 中文字幕人妻丝袜乱一区三区 | 国产无人区一区二区三区| 无码一区二区三区中文字幕| 一区二区中文字幕在线观看| 亚洲av日韩综合一区久热| 亚洲午夜精品第一区二区8050| 无码国产精品一区二区免费虚拟VR| 一区二区三区免费看| 精品国产高清自在线一区二区三区 | 国产成人久久精品一区二区三区| 香蕉免费一区二区三区| 97久久精品午夜一区二区| 免费一区二区无码视频在线播放| 国产经典一区二区三区蜜芽 | 伊人久久精品无码麻豆一区| 日本免费电影一区二区| 国产一区二区视频在线播放| 日韩在线一区二区三区视频| 亚洲av永久无码一区二区三区| 上原亚衣一区二区在线观看| 国产福利电影一区二区三区久久久久成人精品综合 | 日本一区免费电影| 久久4k岛国高清一区二区| 亚洲熟女少妇一区二区| 国产美女精品一区二区三区| 中文字幕色AV一区二区三区| 一本AV高清一区二区三区| 久久精品一区二区| 色欲AV蜜臀一区二区三区 | 亚洲大尺度无码无码专线一区 | 一区二区三区国产| 久久中文字幕一区二区| 久久国产精品最新一区| 亚洲av成人一区二区三区| 中文字幕一区二区三区在线观看 | 国产成人精品一区二区三区无码| 精品国产一区二区麻豆| 精品一区二区91| 成人精品视频一区二区三区| 亚洲一区爱区精品无码| 无码人妻精品一区二区三区99性|