yarn add react-app-rewired customize-cra babel-plugin-import less less-loader
....
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-scripts eject"
},
....
//配置具体的修改规则
const { override, fixBabelImports,addLessLoader} = require('customize-cra');
module.exports = override(
fixBabelImports('import', {
libraryName: 'antd',
libraryDirectory: 'es',
style: true,
}),
addLessLoader({
lessOptions:{
javascriptEnabled: true,
modifyVars: { '@primary-color': 'green' },
}
}),
);
接下来是详细使用。
Ant Design官网
yarn add antd
import React, { Component } from 'react'
import {Button} from 'antd' // 引入需要的组件
import 'antd/dist/antd.css' // 引入样式
export default class App extends Component {
render() {
return (
<div>
<Button type="primary">点我</Button> // 使用
</div>
)
}
}
按需引入官网引导
react-app-rewired
和 customize-cra
yarn add react-app-rewired customize-cra
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-scripts eject"
},
babel-plugin-import
—— 用于按需加载组件代码和样式的 babel
插件yarn add babel-plugin-import
const { override, fixBabelImports } = require('customize-cra');
module.exports = override(
fixBabelImports('import', {
libraryName: 'antd',
libraryDirectory: 'es',
style: 'css',
}),
);
less
、less-loader
yarn add less less-loader@6.0.0
config-overrides.js
内容const { override, fixBabelImports, addLessLoader } = require('customize-cra');
module.exports = override(
fixBabelImports('import', {
libraryName: 'antd',
libraryDirectory: 'es',
style: true,
}),
addLessLoader({
lessOptions: {
javascriptEnabled: true,
modifyVars: { '@primary-color': 'tomato' },
}
}),
);