antd4.x :create-react-app 中使用antd,按需引入和自定义主题

一、自定义主题


1、安装craco

antd4.x 官网,以下截自官网:create-react-app 的默认配置进行自定义,这里我们使用 craco (一个对 create-react-app 进行自定义配置的社区解决方案)。现在我们安装 craco 并修改 package.json 里的 scripts 属性。

yarn add @craco/craco
/* package.json */
"scripts": {
   "start": "craco start",
   "build": "craco build",
   "test": "craco test",
}

然后在项目根目录创建一个 craco.config.js 用于修改默认配置。

/* craco.config.js */
module.exports = {
  // ...
};

2、自定义主题

按照 配置主题 的要求,自定义主题需要用到类似less-loader 提供的 less 变量覆盖功能。我们可以引入 craco-less 来帮助加载 less 样式和修改变量。
首先把 src/App.css 文件修改为 src/App.less,然后修改样式引用为 less 文件。

/* src/App.js */
import './App.less';
/* src/App.less */
import '~antd/dist/antd.less';

然后安装 craco-less 并修改 craco.config.js 文件如下。

yarn add craco-less
const CracoLessPlugin = require('craco-less');

module.exports = {
  plugins: [
    {
      plugin: CracoLessPlugin,
      options: {
        lessLoaderOptions: {
          lessOptions: {
            modifyVars: { '@primary-color': '#1DA57A' },
            javascriptEnabled: true,
          },
        },
      },
    },
  ],
};

这里利用了less-loadermodifyVars 来进行主题配置,变量和其他配置方式可以参考 配置主题 文档。修改后重启 yarn start,如果看到一个绿色的按钮就说明配置成功了。

二、样式按需引入

craco.config.js 的基础上,按需引入
首先下载@babel/plugin-proposal-decorators

yarn add @babel/plugin-proposal-decorators

编辑craco.config.js

const CracoLessPlugin = require('craco-less');

module.exports = {
  plugins: [
    {
      plugin: CracoLessPlugin,
      options: {
        lessLoaderOptions: {
          lessOptions: {
            modifyVars: { '@primary-color': 'oranges' },
            javascriptEnabled: true,
          },
        },
      },
    },
  ],
  /*babel 这里是新增的 */
  babel: {
    plugins: [
        ['import', { libraryName: 'antd', libraryDirectory: 'es', style: true  }],
        ['@babel/plugin-proposal-decorators', { legacy: true }]
    ]
  }
  /*新增结束*/
};

到这里就可以删掉之前引入的'~antd/dist/antd.less',实现按需引入了

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值