反应-bootstrap + purgeCss + next.js
react-bootstrap + purgeCss + next.js
PurgeCss 删除了我项目中使用的 react-bootstrap css 类。我正在使用 Next.js 框架。
_app.js:
import '../styles/style.scss';
import React from 'react';
import PropTypes from 'prop-types';
import 'bootstrap/dist/css/bootstrap.min.css';
// This default export is required in a new `pages/_app.js` file.
export default function MyApp({Component, pageProps}) {
return <Component {...pageProps} />;
}
MyApp.propTypes = {
Component: PropTypes.node,
pageProps: PropTypes.node,
};
component.js:
import React from 'react';
import {Container, Row, Col} from 'react-bootstrap';
const MyTest = function () {
return (
<Container>
<Row> // .row class is missing in the final CSS!
<Col>1 of 2</Col>
<Col>2 of 2</Col>
</Row>
<Row>
<Col>1 of 3</Col>
<Col>2 of 3</Col>
<Col>3 of 3</Col>
</Row>
</Container>
);
};
export default MyTest;
next.config.js:
// next.config.js
const withSass = require('@zeit/next-sass');
const withCss = require('@zeit/next-css');
const withPurgeCss = require('next-purgecss');
module.exports = withCss(
withSass(
withPurgeCss({
generateBuildId: async () => {
// You can, for example, get the latest git commit hash here
return 'my-build-id3';
},
distDir: 'build',
purgeCssPaths: [
'./src/pages/*.js',
'./src/pages/**/*.js',
'./src/components/*.js',
'./src/components/**/*.js',
'./src/layouts/*.js',
'./src/layouts/**/*.js',
],
})
)
);
当我构建应用程序时,.row
类 和 .col
类 在 CSS 文件中完全缺失。禁用 PurgeCSS 时一切正常。
更新 1#:
清除其他 类 工作正常。
在 <div>
中定义 Bootstrap 类 工作正常。:
<button className="btn btn-primary"> // this works fine!
My Button
</button>
其他 React-bootstrap 组件也不起作用。这行不通!
import React from 'react';
import {Button} from 'react-bootstrap';
const MyTest = function () {
return <Button variant="outline-warning">Primary button</Button>; // doesnt work
};
export default MyTest;
您应该将 bootstrap CSS 文件的路径包含到配置文件的清除CSS路径中。
'./node_modules/react-bootstrap/**/*.js',
PurgeCss 删除了我项目中使用的 react-bootstrap css 类。我正在使用 Next.js 框架。
_app.js:
import '../styles/style.scss';
import React from 'react';
import PropTypes from 'prop-types';
import 'bootstrap/dist/css/bootstrap.min.css';
// This default export is required in a new `pages/_app.js` file.
export default function MyApp({Component, pageProps}) {
return <Component {...pageProps} />;
}
MyApp.propTypes = {
Component: PropTypes.node,
pageProps: PropTypes.node,
};
component.js:
import React from 'react';
import {Container, Row, Col} from 'react-bootstrap';
const MyTest = function () {
return (
<Container>
<Row> // .row class is missing in the final CSS!
<Col>1 of 2</Col>
<Col>2 of 2</Col>
</Row>
<Row>
<Col>1 of 3</Col>
<Col>2 of 3</Col>
<Col>3 of 3</Col>
</Row>
</Container>
);
};
export default MyTest;
next.config.js:
// next.config.js
const withSass = require('@zeit/next-sass');
const withCss = require('@zeit/next-css');
const withPurgeCss = require('next-purgecss');
module.exports = withCss(
withSass(
withPurgeCss({
generateBuildId: async () => {
// You can, for example, get the latest git commit hash here
return 'my-build-id3';
},
distDir: 'build',
purgeCssPaths: [
'./src/pages/*.js',
'./src/pages/**/*.js',
'./src/components/*.js',
'./src/components/**/*.js',
'./src/layouts/*.js',
'./src/layouts/**/*.js',
],
})
)
);
当我构建应用程序时,.row
类 和 .col
类 在 CSS 文件中完全缺失。禁用 PurgeCSS 时一切正常。
更新 1#:
清除其他 类 工作正常。
在 <div>
中定义 Bootstrap 类 工作正常。:
<button className="btn btn-primary"> // this works fine!
My Button
</button>
其他 React-bootstrap 组件也不起作用。这行不通!
import React from 'react';
import {Button} from 'react-bootstrap';
const MyTest = function () {
return <Button variant="outline-warning">Primary button</Button>; // doesnt work
};
export default MyTest;
您应该将 bootstrap CSS 文件的路径包含到配置文件的清除CSS路径中。
'./node_modules/react-bootstrap/**/*.js',