从零开始 React + Antd + less + mobx

1. 参考Antd官网,create-react-app,yarn add antd

react版本 16.4.2 , antd版本 3.8.0

https://ant.design/docs/react/use-with-create-react-app-cn

 

2. Antd 按需加载

官网推荐使用 react-app-rewired (一个对 create-react-app 进行自定义配置的社区解决方案)

但是在2.x版本的antd推荐使用 yarn run eject将配置暴露出来,由于后续还需要修改配置,因此选择npm run eject 这种方法。

(1) 使用 babel-plugin-import 是一个用于按需加载组件代码和样式的 babel 插件

      yarn add babel-plugin-import --dev 

(2) 运行 yarn run eject ,暴露出所有的配置文件

(3) 在package.json文件中加入如下配置

"babel": {
    "presets": [
      "react-app"
    ],
    "plugins": [
      [
        "import",[{"libraryName": "antd","style": "css"}]
      ]
    ]
}

在这里"style"选择的是"css",后续引入less的时候改为 true 即可。

至此,使用 import {Button} from 'antd',即可按需加载,且包含样式。

 

3. 引入less

(1) 安装less,less-loader

注意:less3.0以上版本会与Antd冲突,需要需要安装2.x版本

npm install less@2.7.3 --save-dev

npm install less-loader --save-dev

(2) 将第2步按需加载中的"css"改为true

(3)将config.dev,config.prod的代码修改如下

          {
            test: /\.(css|less)$/, //关键句1
            use: [
              require.resolve('style-loader'),
              {
                loader: require.resolve('css-loader'),
                options: {
                  importLoaders: 1,
                },
              },
              {
                loader: require.resolve('postcss-loader'),
                options: {
                  // Necessary for external CSS imports to work
                  // https://github.com/facebookincubator/create-react-app/issues/2677
                  ident: 'postcss',
                  plugins: () => [
                    require('postcss-flexbugs-fixes'),
                    autoprefixer({
                      browsers: [
                        '>1%',
                        'last 4 versions',
                        'Firefox ESR',
                        'not ie < 9', // React doesn't support IE8 anyway
                      ],
                      flexbox: 'no-2009',
                    }),
                  ],
                },
              },
              {
                loader: require.resolve('less-loader') // 关键句2
              }
            ],
          }

4.引入mobx

https://blog.csdn.net/qq499576783/article/details/79500713

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值