1.安装依赖
yarn add react-app-rewired customize-cra babel-plugin-import less less-loader
react-app-rewired:重写脚手架配置
customize-cra:修改webpack配置
babel-plugin-import:将 import 的写法自动转换为按需引入的方式
less:使用less
less-loader:将less文件转化为css
create-creact-app项目,如果需要手动修改配置,需先npm run eject弹出配置,这个过程是不可逆的
2.修改package.json
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-scripts eject"
}
3.根目录下创建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': '#830005' }, //要修改的颜色可以使用英文或者16进制
}
}),
);
注意:不用在组件里亲自引入样式,import ‘antd/dist/antd.css’ 应该删掉
4.安装之后运行报错:TypeError: this.getOptions is not a function
这里可能less-loader版本过高
方法 :1.npm uninstall less-loader
2.npm install less-loader@6.0.0