React 从0到1构建企业级框架基于Antd Designer

一、 create-react-app 创建 cms-front

二、 删除不必须要的文件形成如下结构

1. React版本为17版本 public 文件夹下保留 favicon.ico 偏爱图标+index.html资源文件
2.src 保留 index.js 入口文件和app.js(基于spa原则)单文件即可

在这里插入图片描述

三、配置eslint

1. 安装 eslint. npm install eslint
2.初始化eslint eslint --init
3. .eslintrc.js
module.exports = {env: {browser: true,es2021: true},extends: ['eslint:recommended', 'plugin:react/recommended', 'prettier'],overrides: [{env: {node: true},files: ['.eslintrc.{js,cjs}'],parserOptions: {sourceType: 'script'}}],parserOptions: {ecmaVersion: 'latest',sourceType: 'module'},plugins: ['react'],rules: {}
}
4. 配置 .eslintignore
.eslintrc.js
build/*.js
coverage
.vscode/*
public/*

四、配置prettier 美化代码

1. 安装 prettier. npm install prettier
2. 配置 .prettierrc.js
module.exports = {//指定一个制表符等于多少个空格。默认为 2。useTabs: true,//指定箭头函数参数是否永远使用圆括号。可以是 “always”、“avoid”、或 “as-needed”。默认为 “always”。arrowParens: "avoid",//指定每行代码的最大宽度。默认为 80。printWidth: 120,//指定一个制表符等于多少个空格。默认为 2。tabWidth: 2,// 指定是否在语句末尾添加分号。默认为 true。semi: false,//指定是否使用单引号而不是双引号。默认为 false。singleQuote: true,//指定是否在对象字面量中的括号之间添加空格。默认为 true。bracketSpacing: true,// 首次出现在1.15.0中// 由于历史原因,在文本文件中存在两种常用的行结尾的风格。那是\n(或LF换行)和\r\n(或CRLF用于回车+换行)。// 前者在 Linux 和 macOS 上很常见,而后者在 Windows 上很普遍。可以在维基百科上找到解释其原因的一些细节。// 默认情况下,Prettier 会保留给定文件已使用的行尾的风格。它还将一个文件中的混合行结尾转换为它在第一行末尾找到的结尾。// 当人们在不同操作系统上协作项目时,很容易在中央 git 存储库中找到混合行结尾。// Windows 用户也可能会意外地将已提交文件中的行结尾更改 LF 为 CRLF。// 这样做会产生很大的影响 git diff,如果在代码审查过程中没有注意到,那么file(git blame)的所有逐行历史都会丢失。// 如果你想确保你的 git 存储库在 Prettier 所涵盖的文件中只包含 Linux 风格的行结尾:// 1.将 endOfLine 选项设置为 lf// 2.配置一个 pre-commit 钩子,运行 Prettier// 3.配置 Prettier 在CI管道中运行 --check flag// 4.Windows用户在使用您的仓库之前,运行 git config core.autocrlf false,以便git 在 checkout 时不会转换 LF 为 CRLF。或者,您可以添加 * text=auto eol=lf 到 repo 的.gitattributes 文件来实现此目的。// 所有操作系统中的所有现代文本编辑器都能够在使用 \n(LF)时正确显示行结尾。但是,旧版本的 Windows 记事本会直观地将这些行压缩成一行。// 有效选项:// "auto" - 维护现有的行结尾(通过查看第一行之后使用的内容来标准化一个文件中的混合值)// "lf"- Line Feed only(\n),在 Linux 和 macOS 以及 git repos 内部很常见// "crlf"- 回车符+换行符(\r\n),在 Windows 上很常见// "cr"- 仅限回车符(\r),很少使用endOfLine: "auto",//指定是否在数组和对象字面量的末尾添加逗号。可能的值是 “none”、“es5”(在 ES5 中有效)和 “all”。默认为 “es5”。trailingComma: "none",
};

五、配置环境变量

1.项目根目录下构建环变量

(1).env.uat 开发环境
(2).env.pre 预生产环境
(3).env.prod 生产环境

2.环境变量文件里环境变量名的配置规范和要求

(1) 要以REACT_APP 开始 比如如下命名

#测试环境变量
#主机名
REACT_APP_HOST=localhost-uat.longfor.com
#端口号
REACT_APP_PORT=9000

六 、基于package.json 配置启动项

1. 安装 dotenv、dotenv-cli、react-app-rewired.
npm install dotenv
npm install dotenv-cli
npm install react-app-rewired
2.在package.json 文件中做如下配置
"scripts": {"uat": "dotenv -e .env.uat react-app-rewired start","pre": "dotenv -e .env.pre react-app-rewired start","prod": "dotenv -e .env.prod react-app-rewired start","start": "react-scripts start","build": "react-scripts build","test": "react-scripts test","eject": "react-scripts eject"},

七、配置 config-overrides.js

1. 安装 customize-cra
npm install customize-cra
2.创建config-overrieds.js
3.配置文件内容如下

1.配置本地开发域名和端口号问题
2.按需引入Antd Designer 注意:5.0以上版本跟5.0以下版本引入不一样
3.配置less 注意less-loader问题,根据报错切换不同不同配置
4.配置别名,src 用@代替
5.配置代理,可以直接参考webpack的方式进行配置。
6.如果有各种报错可以参考如下连接

https://blog.csdn.net/weixin_45710060/article/details/125860525

config-overrides.js 代码如下:

const {override,addLessLoader,watchAll,adjustStyleLoaders,overrideDevServer,addWebpackAlias,fixBabelImports
} = require('customize-cra')
const path = require('path')//设置端口号
process.env.PORT = process.env.REACT_APP_PORT
//设置主机名
process.env.HOST = process.env.REACT_APP_HOSTmodule.exports = {webpack: override(//使用lessLoader去加载主题色addLessLoader({javascriptEnabled: true,modifyVars: { '@primary-color': '#1DA57A' }}),//新版本的配置项调整成如下// addLessLoader({//   lessOptions: {//     javascriptEnabled: true,//     modifyVars: { '@primary-color': '#1DA57A' },//   }// }),adjustStyleLoaders(({ use: [, , postcss] }) => {const postcssOptions = postcss.optionspostcss.options = { postcssOptions }}),//使用@替代src增加别名addWebpackAlias({'@': path.resolve(__dirname, 'src')}),//导入antd导入fixBabelImports('import', {libraryName: 'antd',libraryDirectory: 'es',style: true})),devServer: overrideDevServer(config => {return {...config,//配置代理proxy: {'/api': {target: process.env.REACT_APP_APIURL,pathRewrite: {'^/api': ''}}}}}, watchAll())
}

八、页面如下

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/728666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DataX及使用

DataX及使用 【一】DataX概述【二】DataX架构原理【1】设计理念【2】框架设计【3】运行流程【4】调度决策思路【5】DataX和Sqoop对比 【三】DataX部署【四】DataX上手【1】使用概述【2】配置文件格式【3】同步Mysql数据到HDFS 【五】DataX整合Springboot 【一】DataX概述 Data…

27.基于springboot + vue实现的前后端分离-网上租赁交易系统(项目 + 论文)

项目介绍 本课题是根据用户的需要以及网络的优势建立的一个基于Spring Boot的网上租贸系统,来满足用户网络商品租赁的需求。本网上租贸系统应用Java技术,MYSQL数据库存储数据,基于Spring Boot框架开发。在网站的整个开发过程中,首…

24 Linux PWM 驱动

一、PWM 驱动简介 其实在 stm32 中我们就学过了 PWM,这里就是再复习一下。PWM(Pulse Width Modulation),称为脉宽调制,PWM 信号图如下: PWM 最关键的两个参数:频率和占空比。 频率是指单位时间内…

如何使用c++的PCL库 对Las点云进行重建

在 C 中对点云进行重建通常需要使用一些专门的库和算法。下面是一种常见的方法,使用 PCL(点云库)进行点云重建: 安装 PCL 库:首先,需要安装 PCL 库。可以在 PCL 的官方网站上找到安装指南和文档。 读取点云…

排序算法:插入排序和希尔排序

一、插入排序 1.基本原理 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上…

排序算法:冒泡排序和简单选择排序

一、冒泡排序 1.冒泡排序的基本原理 对存放原始数组的数据,按照从前往后的方向进行多次扫描,每次扫描都称为一趟。当发现相邻两个数据的大小次序不符合时,即将这两个数据进行互换,如果从小大小排序,这时较小的数据就…

python将conda环境打入docker环境中

1.假设你本地已经安装好了conda相关的 ubuntu安装python以及conda-CSDN博客 并且已经创建启动过相关的环境,并且install了相关的包。 我本地的conda环境叫做,gptsovits_conda3 2.下载conda打包工具 conda install conda-pack pip install conda-pack 3.打包 con…

蓝桥杯day6队列-3.3

目录 1.约瑟夫环 1.注意&#xff01;q.push(q.front()); 2.机器翻译 3.小桥的神秘礼盒 4.餐厅排队 1.约瑟夫环 今天学习了队列的STL写法&#xff0c;来试试这个题。 #include<bits/stdc.h> using namespace std;int main() {int n,m;cin>>n>>m;queue&l…

基于uniapp cli项目开发的老项目,运行报错path.replace is not a function

项目&#xff1a;基于uniapp cli的微信小程序老项目 问题&#xff1a;git拉取代码&#xff0c;npm安装包时就报错&#xff1b; cnpm能安装成功包&#xff0c;运行报错 三种方法尝试解决&#xff1a; 更改代码&#xff0c;typeof pathstring的话&#xff0c;才走path.replace…

稀疏数组实现

博文主要是自己学习的笔记&#xff0c;供自己以后复习使用&#xff0c; 参考的主要教程是B站的 尚硅谷数据结构和算法 稀疏数组(sparse array) 实际需求&#xff1a;五子棋程序中的存盘退出和续上盘的功能 问题分析&#xff1a; 如果直接用二维数组&#xff0c;很多值是默认…

定时执行专家V7.1 多国语言版本日文版发布 - タスク自動実行ツールV7.1 日本語版リリース

◆ 软件介绍  ソフトの紹介 《定时执行专家》是一款制作精良、功能强大、毫秒精度、专业级的定时任务执行软件。软件具有 25 种【任务类型】、12 种【触发器】触发方式&#xff0c;并且全面支持界面化【Cron表达式】设置。软件采用多线程并发方式检测任务触发和任务执行&…

前端性能优化 | CDN缓存

前言 CDN&#xff08;Content Delivery Network&#xff09;是一种分布式的网络架构&#xff0c;通过在全球各地部署节点服务器来快速传输和分发网络内容。CDN的主要目标是提供快速、可靠的内容传输&#xff0c;以提升用户体验。 本文主要从以下方面讲解CDN 什么是CDNCDN的作…

外贸常用的出口认证 | 全球外贸数据服务平台 | 箱讯科技

出口认证是一种贸易信任背书&#xff0c;对许多外贸从业者而言,产品的出口认证和当前的国际贸易环境一样复杂多变&#xff0c;不同的目标市场、不同的产品类别,所需要的认证及标准也不同。 国际认证 01 IECEE-CB IECEE-CB体系的中文含义是“关于电工产品测试证书的相互认可体…

数据库-第六/七章 关系数据理论和数据库设计【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下数据库系统概论中的重点概念&#xff0c;以供大家期末复习和考研复习的时候使用。 参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。 文章目录 前言第六章 关系数据理论6.1 规范化6.2 范式6.3 规范…

C#,入门教程(26)——数据的基本概念与使用方法

上一篇&#xff1a; C#&#xff0c;入门教程(25)——注释&#xff08;Comments&#xff09;你会吗&#xff1f;看多图演示&#xff0c;学真正注释。https://blog.csdn.net/beijinghorn/article/details/124681888 本文所述的知识基本上适用于C/C&#xff0c;java等其他语言。 …

LVS集群 ----------------(直接路由 )DR模式部署

一、LVS集群的三种工作模式 lvs-nat&#xff1a;修改请求报文的目标IP,多目标IP的DNAT lvs-dr&#xff1a;操纵封装新的MAC地址&#xff08;直接路由&#xff09; lvs-tun&#xff1a;隧道模式 lvs-dr 是 LVS集群的 默认工作模式 NAT通过网络地址转换实现的虚拟服务器&…

在分布式环境中使用状态机支持数据的一致性

简介 在本文中&#xff0c;我们将介绍如何在分布式系统中使用transaction以及分布式系统中transaction的局限性。然后我们通过一个具体的例子&#xff0c;介绍了一种通过设计状态机来避免使用transaction的方法。 什么是数据库transaction Transaction是关系型数据普遍支持的…

java SSM流浪宠物救助与领养myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM流浪宠物救助与领养管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系…

Fragment

1.网格视图(随便插进来一条) 2.Fragment

谷歌开源的LLM大模型 Gemma 简介

相关链接&#xff1a; Hugging face模型下载地址&#xff1a;https://huggingface.co/google/gemma-7bGithub地址&#xff1a;https://github.com/google/gemma_pytorch论文地址&#xff1a;https://storage.googleapis.com/deepmind-media/gemma/gemma-report.pdf官方博客&…