react-app中使用antd,實現(xiàn)css按需加載

從官方給出的示例中我們可以得知,antd中js的加載是自動按需加載的。而對于css的加載則只字未提

js按需加載,如圖所示:

image.png

此時你大概會懷念vue中對于webpack的配置,然后我從網上找了大量的教程,基本都是告訴你要將配置項暴露出來進行修改

$ npm run eject

運氣不好的話會有很多報錯,像這樣

image.png

還有這樣

image.png

看著成篇的webpack配置有沒有很頭疼,完全不知道應該修改哪行,有木有?腳手架的功能就是想讓我們即使不知道如何配置webpack,也能讓webpack用起來爽歪歪,如此方法,則不得不使我們回頭去學webpack的配置,然而我在接下來的文檔中找到了答案,如圖所示:

image.png

查看原文檔

好了,正文開始,對于使用react-app創(chuàng)建項目和引入antd的過程,此處不做贅述

1、安裝craco

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

2、安裝

$ yarn add babel-plugin-import -D

3、新建配置文件craco.config.js

4、文件配置內容如下

module.exports = {
  babel: {
    plugins: [
      ['import', { libraryName: 'antd', style: true }],
    ]
  },
};

5、如果要結合less配置,可參照antd官網,下面給出完整配置

$ yarn add craco-less
const CracoLessPlugin = require('craco-less');
module.exports = {
  plugins: [
    {
      plugin: CracoLessPlugin,
      options: {
        lessLoaderOptions: {
          lessOptions: {
            modifyVars: { "@primary-color": "#1DA57A" },
            javascriptEnabled: true,
          },
        },
      },
    },
  ],
  babel: {
    plugins: [
      ['import', { libraryName: 'antd', style: true }],
    ]
  },
};

大功告成,在此感謝@古天凰、antd官網

對于以下報錯,可將React-app嚴格模式注銷,即可解決。

image.png

修改index.js,如下所示


ReactDOM.render(
  // <React.StrictMode>
    <App />,
  // </React.StrictMode>,
  document.getElementById('root')
);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容