react 按需引入Antd

2019-08-06  本文已影响0人  幸宇

我们现在已经把组件成功运行起来了,但是在实际开发过程中还有很多问题,例如上面的例子实际上加载了全部的 antd 组件的样式(gzipped 后一共大约 60kb)。

此时我们需要对 create-react-app 的默认配置进行自定义,这里我们使用 react-app-rewired (一个对 create-react-app 进行自定义配置的社区解决方案)。

引入 react-app-rewired 并修改 package.json 里的启动配置。由于新的 react-app-rewired@2.x 版本的关系,你还需要安装 customize-cra

1、安装antd npm install antd --save

2、安装(react-app-rewired)一个对 create-react-app 进行自定义配置的社区解决方案

yarn add react-app-rewired    /  cnpm install  react-app-rewired --save

3、修改 package.json

react-scripts 需改为react-app-rewired

    "scripts": {
            "start": "react-app-rewired start",
            "build": "react-app-rewired build",
            "test": "react-app-rewired test --env=jsdom",
            "eject": "react-app-rewired eject"
     }

4、安装babel-plugin-import babel-plugin-import是一个用于按需加载组件代码和样式的 babel 插件

yarn add babel-plugin-import   /  cnpm install babel-plugin-import --save

5、在项目根目录创建一个 config-overrides.js 配置文件

    const { injectBabelPlugin } = require('react-app-rewired');

    module.exports = function override(config, env) {
     config = injectBabelPlugin(
               ['import', { libraryName: 'antd', libraryDirectory: 'es', style: 'css' }],
               config,
      );
     return config;
     };

7、然后移除前面在 src/App.css 里全量添加的 @import '~antd/dist/antd.css'; 直接引入组件使用就会有对应的css

import { Button } from 'antd';
<Button type="primary">Primary</Button>
上一篇 下一篇

猜你喜欢

热点阅读