解决:react脚手架(create-react-app)配置antd中css按需加载的坑

antd官网 按需加载 是如下说的

使用 babel-plugin-import(推荐)

// .babelrc or babel-loader option
{
  "plugins": [
    ["import", {
      "libraryName": "antd",
      "libraryDirectory": "es",
      "style": "css" // `style: true` 会加载 less 文件
    }]
  ]
}

然后只需从 antd 引入模块即可,无需单独引入样式。

当我们配置好了之后,发现并没有生效,难道配置出错了?
我们按照官网配置,肯定是不会错的。

其实是这个脚手架,它默认是不使用.babelrc的,它使用的是package.json中的babel配置和内部配置。

这时需要我们将脚手架的内部配置项暴露出来进行修改,使用 npm run eject这个命令来暴露配置。但是运行npm run eject会报出下面的错误

解决:react脚手架(create-react-app)配置antd中css按需加载的坑_第1张图片

解决:根据报错信息,需要将代码利用git提交一下

解决:react脚手架(create-react-app)配置antd中css按需加载的坑_第2张图片

提交完之后,需要再次运行npm run eject

解决:react脚手架(create-react-app)配置antd中css按需加载的坑_第3张图片

找到config/webpack.config.js文件,将babelrc:false改为true,意思是启用.babelrc的配置

解决:react脚手架(create-react-app)配置antd中css按需加载的坑_第4张图片

同时将package.json中的babel下面的 “presets”: [ “react-app” ] 配置到.babelrc中,并将package.json中的babel删除掉

解决:react脚手架(create-react-app)配置antd中css按需加载的坑_第5张图片
大功告成!

PS:未来的你,一定会感谢今天拼命努力的自己!

你可能感兴趣的:(解决:react脚手架(create-react-app)配置antd中css按需加载的坑)