在 React 中如何只导入需要的 Bootstrap 样式。Bootstrap css 模块?

Mik*_*kel 6 css twitter-bootstrap reactjs webpack css-modules

我想在我的 React 项目中使用 bootstrap 4。构建的 css 文件应该只包含我在 React 组件中包含的引导程序类的样式。

我不是在搜索 Bootstrap css 类作为 React 组件;我不介意写<div className='container'>

1. 反应带

我尝试使用reactstrap,是的,将引导 css 类作为组件(例如<Container></Container>),但您必须包含所有引导样式

src/index.js

import 'bootstrap/dist/css/bootstrap.css';
Run Code Online (Sandbox Code Playgroud)

2.scss源文件

因为我已经sass-loader尝试过直接导入 scss 文件:

import bootstrapGrid from 'bootstrap/scss/_grid.scss';
const myComponent = () => <div className={bootstrapGrid.container}>[...]</div>
Run Code Online (Sandbox Code Playgroud)

但它失败了,因为它没有足够的数据来编译:

在此处输入图片说明

3. 其他解决方案:

什么是正确的方向?

或者我应该使用purifycss-webpack来清理我的应用程序?并删除未使用的 css 类。

Syd*_*den 3

您可以执行以下操作,其中应包含编译网格所需的所有模块:

import bootstrapGrid from 'bootstrap/scss/bootstrap-grid.scss';
Run Code Online (Sandbox Code Playgroud)

或者,首先包含变量以及编译网格所需的所有其他模块:

import bootstrapFunctions from 'bootstrap/scss/_functions';
import bootstrapVariables from 'bootstrap/scss/_variables';
import bootstrapMixinBreakpoints from 'bootstrap/scss/mixins/_breakpoints';
import bootstrapMixinGridFramework from 'bootstrap/scss/mixins/_grid-framework';
import bootstrapMixinGrid from 'bootstrap/scss/mixins/_grid';
import bootstrapGrid from 'bootstrap/scss/_grid.scss';
import bootstrapUtilitiesDisplay from 'bootstrap/scss/utilities/_display';
import bootstrapUtilitiesFlex from 'bootstrap/scss/utilities/_flex';
Run Code Online (Sandbox Code Playgroud)

您可以从 bootstrap-grid.scss 文件检查需要哪些模块@imports

@import "functions";
@import "variables";

@import "mixins/breakpoints";
@import "mixins/grid-framework";
@import "mixins/grid";

@import "grid";
@import "utilities/display";
@import "utilities/flex";
Run Code Online (Sandbox Code Playgroud)