通过create-react-app脚手架生成一个项目
然后运行npm run eject 把webpack的一些配置从react-scripts模块弹射出来,
方便自己手工增减,暴露出来的配置文件在app/config下面。
1、antd样式按需加载
用到babel-plugin-import bebel插件
直接在package.json里面添加配置就可以按需加载了:
"babel": {
"presets": [
"react-app"
],
"plugins": [
[
"import",
{
"libraryName": "antd",
"libraryDirectory": "es",
"style": "css"
}
]
]
}
现在使用antd组件就不用引用样式了
(官网上是推荐使用react-app-rewired(customize-cra)模块,
自己建一个config-overrides.js对包里的webpack配置进行覆盖,感觉多了一个配置不怎么好。)
2、antd设置按需加载样式后和css模块化的冲突问题
其实webpack.config.js里默认已经写好了配置,即匹配cssModuleRegex的loader设置,
只需要将我们需要模块化的样式文件后缀进行修改
文件后缀修改成xxx.module.css即可。
最终项目里引用样式:
入口文件引用全局公共自定义样式=>import './css/common.css';
// common.css文件
.ml20{margin-left: 20px}
// jsx文件里使用
<span className=“ml20”>1</span>
页面或者组件中引用模块化私有样式=>import style from './xxx.module.css'
// xxx.module.css文件
.red{color: red;}
// jsx里使用
<span className=“ml20”>1</span>
<span className={style.red}>2</span>