antd的主题色默认是蓝色的,但是看到官网上有很多配色很好看,所以想换个颜色试试,官网提供的色系:
安装antd less less-loader babel依赖
npm i antd less less-loader babel-plugin-import @babel/plugin-syntax-jsx
这里需注意,less最好安装@5.0.0版本,不然后续会报兼容的错(目前不知道@6以上要如何解决)。
然后需要在项目中运行npm run eject来在项目根目录中生成config配置文件夹(若已生成忽略这一步)
生成的文件夹如下:
添加less-loader配置
在config文件夹下的webpack.config.js中添加如下代码:
{
test: /\.less$/,
use: [
{
loader: "style-loader"
},
{
loader: "css-loader"
},
{
loader: "less-loader",
options: {
sourceMap: true,
modifyVars: {
'@primary-color': '#13c2c2', //修改antd主题色
},
javascriptEnabled: true,
}
}]
},
App.css改为App.less,并加入以下内容:
// App.less
@import '~antd/dist/antd.less';
在App.js中引入App.less:
import React from 'react'
import { IconStyle } from './assets/iconfont/iconfont'
import { GlobalStyle } from './style'
import { renderRoutes } from 'react-router-config';//renderRoutes 读取路由配置转化为 Route 标签
import routes from './routes/index.js'
import { HashRouter } from 'react-router-dom'
import './App.less' // 引入App.less
function App() {
return (
<HashRouter>
<GlobalStyle></GlobalStyle>
<IconStyle></IconStyle>
{ renderRoutes (routes) }
</HashRouter>
);
}
export default App;
运行
色系变为cyan: