1.安装路由插件时安装@types/react-router-dom
2.index.tsx中删除<React.StrictMode>标签
Error: Cannot find module 'react-scripts/config/env.js'
bash
yarn add react-scripts
4.路由懒加载+代码分割打包
bash
yarn add react-loadable babel-plugin-syntax-dynamic-import --dev
参考:
react实现路由懒加载(异步组件)_react react-loadable babel-plugin-syntax-dynamic-i_qianlingvip的博客-CSDN博客
babel-plugin-syntax-dynamic-import_xiange18的博客-CSDN博客
5.分环境打包
bash
npm install dotenv-cli --save-dev
通过dotenv -e .env.tst(配置文件名) craco build打包指令 完成打包
参考
create-react-app中分环境打包_zerocher的博客-CSDN博客
6.设置打包后出口文件路径
package.json中添加homepage属性
7.查看打包的静态资源文件报错
Uncaught DOMException:Failed to execute 'replaceState' on 'History': A history state object with URL 'file:///home' cannot be created in a document with origin 'null' and URL 'file:///Users/hzby/Desktop/user/demo/ts-hooks-project/build/index.html#/home'.
路由改为HashRouter
8.antd样式按需加载
bash
npm i -D less@2.7 babel-plugin-import
配置Antd样式按需引入
同样是打开 webpack.config.js文件
文件搜索babel-loader 找到下面pulgins
添加一个配置项即可
["import", { 'libraryName': 'antd', style: true }]
万事大吉项目中直接引入antd的组件即可,无需再全局引入antd的css样式
最后修改完webpack.config.js配置记得重启项目
9.使用Magic Comments
魔术注释法设置打包文件名称
javascript
const Home = loadable(()=>import(/* webpackChunkName: 'Home'*/'./../page/home'));