react+ts+antd项目搭建

news/2024/7/8 1:34:27 标签: react.js, 前端, 前端框架
前言: 基于ts语言创建react项目,node版本是v16.14.2

一、 脚手架创建项目

  1. 全局安装
 npm install -g creacte-react-app
  1. 创建项目file-management,ts需要添加–template typescript
npx create-react-app file-management --template typescript

二、 添加craco.config.js配置文件,类似于vue的vue.config.js文件

  1. 安装
npm i -D @craco/craco
  1. 在项目根目录添加craco.config.js文件并添加路径别名
const path = require('path')

module.exports = {
  // webpack 配置
  webpack: {
    // 配置别名
    alias: {
      '@': path.resolve(__dirname, 'src')
    }
  }
}
  1. 修改 package.json 中的脚本命令

修改前:

"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },

修改后:

"scripts": {
    "start": "craco start",
    "build": "craco build",
    "test": "craco test",
    "eject": "craco eject"
  },
  1. 配置路径识别,在根目录tsconfig.json文件中添加baseUrl和paths
{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "noFallthroughCasesInSwitch": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react-jsx",
    "baseUrl": "./",
    "paths": {
      "@/*": ["src/*"]
    }
  },
  "include": [
    "src"
  ]
}

更多配置参见craco配置文档

三、使用第三方组件库antd

需要注意的是antd是按需导入的,react并不能像vue一样把组件全部引用并注册。所以在react中使用antd只能是需要什么组件在页面中引入使用

  1. 安装
npm install antd --save
  1. 引入,以app.tsx为例
import { ConfigProvider } from 'antd';
import './App.css';

function App() {
  return (
    <ConfigProvider>
      
    </ConfigProvider>
  );
}

export default App;

四、使用less

  1. 安装,我们使用craco方式
npm i craco-less
  1. 在craco.config.js文件中添加配置
const CracoLessPlugin = require('craco-less')

module.exports = {
  plugins:[
    {
      // less
      plugin: CracoLessPlugin,
      options: {
        // resolve-url-loader只对sass生效,craco-less默认使用sass配置,所以这里手动过滤掉resolve-url-loader
        modifyLessRule: (lessRule) => {
          lessRule.use = lessRule.use.filter(
            (i) => !i.loader.includes('resolve-url-loader')
          );
          return lessRule;
        },
      },
    },
  ],
}
  1. 把app.css改为app.less并在app.tsx中引入
    在这里插入图片描述

五、使用路由

  1. 安装
npm install react-router react-router-dom
  1. 使用 app.tsx
import { ConfigProvider } from 'antd';
import { BrowserRouter as Router } from 'react-router-dom';
import './App.less';

function App() {
  return (
    <Router>
      <ConfigProvider>

      </ConfigProvider>
    </Router>
  );
}

export default App;

http://www.niftyadmin.cn/n/5535964.html

相关文章

强强联合:Apache Kylin与Impala的集成之道

&#x1f517; 强强联合&#xff1a;Apache Kylin与Impala的集成之道 在大数据时代&#xff0c;Apache Kylin和Impala都是分析型数据库的佼佼者&#xff0c;分别以预计算的OLAP引擎和高性能的SQL on Hadoop解决方案而闻名。将两者集成&#xff0c;可以充分利用Kylin的预计算能…

前端重点之:Vue+websocket通信详细用法和websocket心跳机制的使用,websocket断开实时监测,websocket实时通信

今年年初找工作,好多gou面试官总喜欢问关于websocket通信的使用方式,此次又用到了,在此做个总结:主要包含websocket的具体使用方法,和重点:(心跳机制的使用),就是主要是前端实时监测websocket是否有断连和数据的处理 在前端开发中,WebSocket 是一种常见的技术,用于…

18.【C语言】初识#define定义常量和宏

如&#xff1a;#define _CRT_SECURE_NO_WARNINGS 1 define 用途&#xff1a;1.定义常量&#xff1a; #define a 0 2.定义宏&#xff1a;宏是一种预处理指令(预处理指令不是关键字) 格式&#xff1a; #define 宏名 替换内容 #define 宏名(参数列表) 替换内容 #define functio…

【机器学习】Whisper:开源语音转文本(speech-to-text)大模型实战

目录 一、引言 二、Whisper 模型原理 2.1 模型架构 2.2 语音处理 2.3 文本处理 三、Whisper 模型实战 3.1 环境安装 3.2 模型下载 3.3 模型推理 3.4 完整代码 3.5 模型部署 四、总结 一、引言 上一篇对​​​​​​​ChatTTS文本转语音模型原理和实战进行了讲解&a…

从零开始开发跑腿配送系统:技术选型与架构设计

开发一个跑腿配送系统涉及多个技术栈和模块&#xff0c;从前端到后端&#xff0c;再到数据库和实时通信&#xff0c;每一个环节都至关重要。本文将详细介绍从零开始开发跑腿配送系统的技术选型与架构设计&#xff0c;并提供部分代码示例以帮助理解。 一、技术选型 前端技术&am…

ESP32CAM物联网教学06

ESP32CAM物联网教学06 拍照上传互联网 在上节课中&#xff0c;小智的物联网视频小车&#xff0c;在与家用的云台监控摄像头的PK中&#xff0c;各具优势&#xff0c;难分高下&#xff0c;这让小智下定决心&#xff0c;再次增强物联网小车的功能&#xff0c;提升小车的智能水平。…

高性价比 ESP32 网络收音机:OLED 显示+编码器控制 (源码开源)

摘要: 本文将详细介绍如何使用 ESP32 开发板制作一个功能完备的网络收音机。我们将涵盖硬件选择、软件架构、网络连接、音频流解码、用户界面设计等方面&#xff0c;并提供完整的代码示例和详细的解释&#xff0c;帮助您轻松构建自己的网络收音机。 关键词: ESP32, 网络收音机…

JVM专题之G1垃圾收集器下

索引(记录)的源码的工作流程图如下: CSet(Collection Set 回收集合) 收集集合(CSet)代表每次GC暂停时回收的一系列目标分区。在任意一次收集暂停中,CSet所有分区都会被释放,内部存活的对象都会被转移到分配的空闲分区中。因此无论是年轻代收集,还是混合收集,工作的机…