create-react-app新建項(xiàng)目配置

1.新建

npx create-react-app react-ts --typescript
# or
yarn create react-app react-ts  --typescript

之前都是運(yùn)行npm run eject暴露所有webpack配置來(lái)添加less,研究了一下antd發(fā)現(xiàn)了一個(gè)新方法

2.antd

yarn add antd

index.css頂部引入antd/dist/antd.css,一般都是把App文件都刪了

@import '~antd/dist/antd.css';

3.自定義配置,按需加載antd組件樣式

yarn add react-app-rewired customize-cra

修改package.json

"scripts": {
-   "start": "react-scripts start",
+   "start": "react-app-rewired start",
-   "build": "react-scripts build",
+   "build": "react-app-rewired build",
-   "test": "react-scripts test",
+   "test": "react-app-rewired test",
}

在根目錄創(chuàng)建config-overrides.js用于修改默認(rèn)配置

module.exports = function override(config, env) {
  // do stuff with the webpack config...
  return config;
};

4.使用babel-plugin-import

按需加載組件代碼和樣式的babel插件

yarn add babel-plugin-import

修改config-overrides.js配置文件

const {override, fixBabelImports} = require('customize-cra');
module.exports = override(
    fixBabelImports('import',{
        libraryName:'antd',
        libraryDirectory:'es',
        styles:'css'
    })
)

5.自定義主題(less)

yarn add less less-loader

修改config-overrides.js配置文件

const { override, fixBabelImports, addLessLoader } = require("customize-cra");
module.exports = override(
  fixBabelImports("import", {
    libraryName: "antd",
    libraryDirectory: "es",
    styles: "true"
  }),
  addLessLoader({
    javascriptEnabled: true,
    modifyVars: { "@primary-color": "#1DA57A" }
  })
);

6.less模塊化

沒(méi)成功
在react-app-env.d.ts配置

declare module "*.module.less" {
  const classes: { [key: string]: string };
  export default classes;
}

報(bào)錯(cuò)

原因好像是webpack4版本里面的minimize去掉了。
沒(méi)有eject不能改了
2019-12-5

7. 加入redux

8.或加入mobx(4.0兼容ie11)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容