配置步骤:
引入react-app-rewired插件
react-app-rewired的作用就是在不eject的情况下,覆盖create-react-app的配置安装customize-cra
npm install react-app-rewired customize-cra --save-dev
安装
style-resources-loader
npm install style-resources-loader
修改 package.json 里的启动配置
1
2
3
4
5
6
7
8
9/* package.json */
"scripts": {
- "start": "react-scripts start",
+ "start": "react-app-rewired start",
- "build": "react-scripts build",
+ "build": "react-app-rewired build",
- "test": "react-scripts test --env=jsdom",
+ "test": "react-app-rewired test --env=jsdom",
}在配置文件 config-overrides.js中修改
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45const {
override,
addLessLoader, // less配置函数
fixBabelImports, // 按需加载配置函数
addBabelPlugins, // babel插件配置函数
addWebpackAlias, // /路径别名
} = require('customize-cra');
const path = require("path");
module.exports = override(
...addBabelPlugins( // 支持装饰器
[
'@babel/plugin-proposal-decorators',
{ legacy: true}
]
),
fixBabelImports('import', { // antd 按需加载
libraryName: 'antd',
libraryDirectory: 'es',
style: true //自动打包相关的样式 默认为 style:'css',这里需要改为true
}),
addLessLoader(
{
javascriptEnabled: true,
modifyVars: { '@primary-color': '#004080' } //这里也可以配置全局的样式变量,不建议在配置文件中添加,这个修改@primary-color主要是为了修改antd的主题色
}
),
addWebpackAlias({ //路径别名
'@': path.resolve(__dirname, 'src'),
}),
(config) => {
//修改、添加loader 配置 :
// 所有的loaders规则是在config.module.rules(数组)的第二项
// 即:config.module.rules[2].oneof (如果不是,具体可以打印 一下是第几项目)
// 修改 less 配置 ,规则 loader 在第7项(具体可以打印配置)
const loaders = config.module.rules.find(rule => Array.isArray(rule.oneOf)).oneOf;
console.log(loaders)
loaders[7].use.push({
loader: 'style-resources-loader',
options: {
patterns: path.resolve(__dirname, 'src/style/common.less')//全局引入公共的scss 文件
}
})
return config
}
)common.less
1
2
3
4
5
6
7@import 'reset.less';
@import 'variable.less';
.center {
display: flex;
align-items: center;
justify-content: center;
}variable.less,需要添加全局样式变量,直接在这个文件添加
1
2
3@primary-color: #004080;
@bg-gray-color: #F4F4F4;
我很可爱,请给我钱
- 本文链接:https://cong1223.github.io/2020/08/09/react%E4%B8%AD%E9%85%8D%E7%BD%AE%E5%85%A8%E5%B1%80less%E5%8F%98%E9%87%8F/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub IssuesGitHub Discussions