有来团队后台项目-解析10

axios

安装

pnpm i axios

创建文件

src 目录下创建 utils 文件夹,utils 文件夹下创建request.ts

src 目录下创建store 文件夹,文件夹下创建index.ts ,创建modules 文件夹

编写request.ts

// 引入axios,引入请求拦截器类型约束,响应拦截器类型约束
import axios, { InternalAxiosRequestConfig, AxiosResponse } from "axios";// 创建axios  实例const service = axios.create({baseURL: "http://localhost:3000",timeout: 5000,
});
// 请求拦截器
service.interceptors.request.use((config: InternalAxiosRequestConfig) => {// 在发送请求之前做些什么return config;},(error: any) => {// 对请求错误做些什么return Promise.reject(error);}
);
// 响应拦截器
service.interceptors.response.use((response: AxiosResponse) => {// 对响应数据做点什么return response;},(error: any) => {// 对响应错误做点什么return Promise.reject(error);}
);
// 导出axios 实例
export default service;

配置环境变量

新建目录

src/.env.development 开发环境
src/.env.production 生产环境

配置环境

// .env.development
## 开发环境
NODE_ENV='development'
# 应用端口
VITE_APP_PORT = 3009# 代理前缀
VITE_APP_BASE_API = '/dev-api'# 线上接口地址
VITE_APP_API_URL = http://vapi.youlai.tech
//.env.production
## 生产环境
NODE_ENV='production'# 代理前缀
VITE_APP_BASE_API = '/prod-api'

配置环境变量只能提示

新建文件src/typings/env.d.ts
// 环境变量的类型约束

/// <reference types="vite/client" />declare module "*.vue" {import { DefineComponent } from "vue";// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-typesconst component: DefineComponent<{}, {}, any>;export default component;
}interface ImportMetaEnv {/** 应用端口 */VITE_APP_PORT: string;/** API 基础路径 */VITE_APP_BASE_API: string;VITE_APP_API_URL: string;
}interface ImportMeta {readonly env: ImportMetaEnv;
}/*** 平台的名称、版本、运行所需的`node`版本、依赖、构建时间的类型提示*/
declare const __APP_INFO__: {pkg: {name: string;version: string;engines: {node: string;};dependencies: Record<string, string>;devDependencies: Record<string, string>;};buildTimestamp: number;
};

配置package.json

 "preinstall": "npx only-allow pnpm",// 只能使用pnpm
"build": "vite build --mode production",
"dev": "vite serve --mode development",
"build:prod": "vite build --mode production && vue-tsc --noEmit",
"engines": {"node": ">=18.0.0"},

vue-tsc:Vue 官方提供的命令,用于执行 TS 的类型检查。它在执行时会根据项目中的 tsconfig.json 文件配置进行类型检查
–noEmit:TS 编译器的选项,使用 --noEmit 选项后,编译器仅执行类型检查,而不会生成任何实际的编译输出
engines: node 的版本要大于18.0.0

配置vite.config.ts

 // 获取环境const env = loadEnv(mode, process.cwd());// 配置代理server: {// 允许IP 访问host: "0.0.0.0",port: Number(env.VITE_APP_PORT),open: true,proxy: {// 配置代理[env.VITE_APP_BASE_API]: {changeOrigin: true,// 接口地址target: env.VITE_APP_BASE_API,rewrite: (path) =>path.replace(new RegExp("^" + env.VITE_APP_BASE_API), ""),},},},

安装遗漏的icon 插件

pnpm i unplugin-icons

配置lint-staged文件

pnpm i lint-staged S

配置husky文件

在.husky 文件夹下的pre-commit文件中配置

npm run lint:lint-staged

配置package.json

// 在代码提交之前,进行代码规则检查能够确保进入git库的代码都是符合代码规则的

    "lint:lint-staged": "lint-staged",

执行配置命令

pnpm run dev
pnpm run build:prod

查看是否会报错

补充安装git 提交规范

安装

npm i -D cz-git czg

配置

package.json 中

// package.json 添加 config 字段,指定使用的 commitizen 适配器,然后在 script 中添加一个脚本命令
"scripts": {"commit": "git-cz"}"config": {"commitizen": {"path": "node_modules/cz-git"}},

以后把 git commit 替换成 npm run cz

pinia

安装

pnpm i pinia

@vueuse/core

一些封装好的工具方法

pnpm i @vueuse/core

查看源码

https://github.com/1094549944/youlahoutaijiexi/tree/jiexi10

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

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

相关文章

数据仓库为什么要分层建设?每一层的作用是什么?

在数字化时代&#xff0c;数据已成为企业最宝贵的资产之一。为了更好地管理和利用这些数据&#xff0c;许多企业都建立了数据仓库。然而&#xff0c;数据仓库并非简单的数据存储工具&#xff0c;而是一个复杂的数据处理和分析系统。其中&#xff0c;分层建设是数据仓库设计的重…

稀碎从零算法笔记Day17-LeetCode:有效的括号

题型&#xff1a;栈 链接&#xff1a;20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述&#xff08;红字为笔者添加&#xff09; 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 …

SQLiteC/C++接口详细介绍之sqlite3类(六)

快速前往文章列表&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;五&#xff09; 下一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;七&#xff09; 19. sqlite3_changes与sqlite3_changes64 是SQLite中用…

【MyBatis-Plus】逻辑删除、乐观锁、防全表更新和删除实现 MyBatisX插件 高级扩展

文章目录 一、逻辑删除实现二、乐观锁实现2.1 悲观锁和乐观锁场景和介绍2.2 具体技术和方案:2.3 版本号乐观锁技术的实现流程2.4 使用mybatis-plus数据使用乐观锁 三、防全表更新和删除实现三、代码生成器(MyBatisX插件) 一、逻辑删除实现 物理删除&#xff1a;真实删除&#…

npm-软件包管理器

初始化清单文件&#xff1a;npm init -y(得到package.json文件&#xff09; 下载软件包&#xff1a;npm i 软件名称 使用软件包 npm i 会根据package.json中记录中的所有软件包下载 nodemon全局软件包&#xff1a;作用在本机所有的项目&#xff0c;封装命令和工具&#xff…

Flink on Yarn安装配置

前言 Apache Flink&#xff0c;作为一个开源的分布式处理引擎&#xff0c;近年来在大数据处理领域崭露头角&#xff0c;其独特的流处理和批处理一体化模型&#xff0c;使得它能够在处理无界和有界数据流时展现出卓越的性能。本文旨在对Flink进行简要的前言性介绍&#xff0c;以…

Oracle登录错误ERROR: ORA-01031: insufficient privileges解决办法

这个问题困扰了我三个星期&#xff0c;我在网上找的解决办法&#xff1a; 1.控制面板->管理工具->计算机管理->系统工具->本地用户和组->ORA_DBA组。 但我电脑上根本找不到。 2.在oracle安装目录下找到oradba.exe运行。 最开始我都不到这个oradba.exe文件在哪…

云计算 3月11号 (NFS远程共享存储及vsftpd配置)

构建NFS远程共享存储 一、NFS介绍 文件系统级别共享&#xff08;是NAS存储&#xff09; --------- 已经做好了格式化&#xff0c;可以直接用。 速度慢比如&#xff1a;nfs&#xff0c;sambaNFS NFS&#xff1a;Network File System 网络文件系统&#xff0c;NFS 和其他文件…

(008)Unity StateMachineBehaviour的坑

文章目录 StateMachineBehaviour同名函数的调用问题StateMachineBehaviour 的 OnState*、OnStateMachine* 的区别 StateMachineBehaviour同名函数的调用问题 1.如果脚本中&#xff0c;两个同名的函数都存在&#xff0c;那么两个函数都会被调用&#xff1b;如果只有其中一个同名…

【趣味学算法】06_字符串是否合法

注&#xff1a; 本系列仅为个人学习笔记&#xff0c;学习内容为《算法小讲堂》&#xff08;视频传送门&#xff09;&#xff0c;通俗易懂适合编程入门小白&#xff0c;需要具备python语言基础&#xff0c;本人小白&#xff0c;如内容有误感谢您的批评指正 要写个程序判断给定的…

Maven3.6.3安装与配置,IDEA2022.2.3部署Maven操作步骤

1、先确保安装了Java开发环境&#xff0c;并配置了JAVA_HOME环境变量 WinR ,输入cmd,然后输入命令echo %JAVA_HOME%,查看JDK &#xff0c;接着输入java -version,查看java的版本号 接着系统变量中&#xff0c;配置JAVA_HOME环境变量 2、官网下载MAVEN3.6.3&#xff0c;Maven3.…

3.14

racial a. 种族的 radiation n. 放射&#xff0c;放射物 railway n. 铁路&#xff1b;铁道 rainbow n. 虹&#xff0c;彩虹 raise vt. 使升高; 饲养 random a. 随意的 rank n. 职衔&#xff0c;军衔 rare a. 罕见的&#xff0c;稀有的 rat n. 老鼠 rate n./ v. 率&#xff0c;评…

<JavaEE> 了解网络层协议 -- IP协议

目录 初识IP协议 什么是IP协议&#xff1f; IP协议中的基础概念 IP协议格式 图示 4bit版本号&#xff08;version&#xff09; 4bit头部长度&#xff08;headerlength&#xff09; 8bit服务类型&#xff08;TypeOfService&#xff09; 16bit总长度&#xff08;total l…

prompt,RAG,finetune,从零训练大模型对比

Prompt Engineering RAG 微调 从零训练大模型通过提供少量示例提供尽可能多的上下文&#xff0c;使基础模型更好地了解用例增加了直接来自向量化信息存储的特定于用例的上下文在特定领域的数据上更新模型权重模型是在用例特定数据上从零开始训练的准确性与其他方法相比&#xf…

24计算机考研调剂 | 太原科技大学【官方】

2024年太原科技大学 光学工程、光电信息工程专业接收研究生调剂 考研调剂招生信息 学校&#xff1a;太原科技大学 专业&#xff1a;083000&#xff08;光电工程&#xff09; 085408&#xff08;光电信息工程&#xff09; 调剂考生基本要求&#xff1a; 1.学硕&#xff1a;…

数据结构——循环链表,双向链表,线性表和有序表的合并详解

目录 1.循环链表 1.带尾指针循环链表的合并 代码示例&#xff1a; 2.双向链表 代码示例&#xff1a; 1.双向链表的插入 ​代码示例&#xff1a; 2.双向链表的删除 代码示例&#xff1a; 3.单链表&#xff0c;循环链表&#xff0c;双向链表时间效率的比较 4.顺序表和链…

JVM基础篇

什么是JVM java虚拟机 JVM的功能 1.解释和运行 对字节码文件中的指令&#xff0c;实时的解释成机器码&#xff0c;让计算机执行 2.内存管理 自动为对象、方法等分配内存 自动的垃圾回收机制&#xff0c;回收不再使用的对象&#xff08;c不会自动回收&#xff0c;相当于降…

vue-cli-浏览器实现热更新

最常用的是webpack-dev-server&#xff0c;它是一个小型的Node.js Express服务器&#xff0c;它使用webpack-dev-middleware来服务于webpack的包。当文件变动时&#xff0c;它会通知浏览器自动刷新。 使用步骤&#xff1a; 安装 webpack 和 webpack-cli npm install --regist…

腾讯云轻量服务器地域选择教程以及不同地域的区别

腾讯云服务器地域怎么选择&#xff1f;不同地域之间有什么区别&#xff1f;腾讯云哪个地域好&#xff1f;地域选择遵循就近原则&#xff0c;访客距离地域越近网络延迟越低&#xff0c;速度越快。腾讯云百科txybk.com告诉大家关于地域的选择还有很多因素&#xff0c;地域节点选择…

net/http 框架源码解读

一、Hello World 使用net/http编写一个简单的web服务器, 定义了一个UserHandler的处理函数&#xff0c;通过HandleFunc来将路由和handler进行绑定&#xff0c;最后通过ListenAndServe启动web服务&#xff0c;后面我将handler统称为视图函数 package mainimport "net/htt…