当前位置: 首页 > news >正文

有来团队后台项目-解析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

相关文章:

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

axios 安装 pnpm i axios创建文件 src 目录下创建 utils 文件夹&#xff0c;utils 文件夹下创建request.ts src 目录下创建store 文件夹&#xff0c;文件夹下创建index.ts &#xff0c;创建modules 文件夹 编写request.ts // 引入axios&#xff0c;引入请求拦截器类型约束…...

【自动化】在C#中创建和配置串口对象SerialPort

串口通信在各种应用场景中都有广泛的应用&#xff0c;如工业控制、数据采集等。在.NET框架中&#xff0c;SerialPort类是用于串口通信的一个非常实用的类。本文将介绍如何在C#中使用SerialPort类进行串口通信&#xff0c;包括SerialPort的创建方法、基本属性设置和数据发送的基…...

突破编程_C++_设计模式(访问者模式)

1 访问者模式的基本概念 C中的访问者模式是一种行为设计模式&#xff0c;它允许你在不修改类层次结构的情况下增加新的操作。这种模式将数据结构与数据操作解耦&#xff0c;使得操作可以独立于对象的类来定义。 访问者模式的主要组成部分包括&#xff1a; &#xff08;1&…...

C语言入门到精通之练习53:矩阵交换行问题(附带源码)

描述 给定一个 5*5 的矩阵&#xff08;数学上&#xff0c;一个 rc 的矩阵是一个由 r 行 c 列元素排列成的矩形阵列&#xff09;&#xff0c;将第 n 行和第 m 行交换&#xff0c;输出交换后的结果。 输入输入共 6 行&#xff0c;前 5 行为矩阵的每一行元素, 元素与元素之间以一…...

Python白练-2统计下列5行字符串中字符出现的频数

问题&#xff1a;统计下列5行字符串中字符a、c、g、t出现的频数 数据&#xff1a;data2_2&#xff1a; 1.aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggagg 2.cggaggacaaacgggatggcggtattggaggtggcggactgttcgggga 3.gggacggatacggattctggccacggacggaaaggaggacacggcg…...

深入理解DHCP服务:网络地址的自动化分配

深入理解DHCP服务&#xff1a;网络地址的自动化分配 在现代网络环境中&#xff0c;动态主机配置协议&#xff08;DHCP&#xff09; 是一个至关重要的服务&#xff0c;它允许自动分配IP地址和其他相关配置信息给网络中的设备。本文将深入探讨DHCP服务的工作原理、配置方法以及如…...

Java高级编程—泛型

文章目录 1.为什么要有泛型 (Generic)1.1 泛型的概念1.2 使用泛型后的好处 2.在集合中使用泛型3.自定义泛型结构3.1 自定义泛型类、泛型接口3.2 自定义泛型方法 4.泛型在继承上的体现5.通配符的使用5.1 基本使用5.2 有限制的通配符的使用 1.为什么要有泛型 (Generic) Java中的…...

Exam in MAC [容斥]

题意 思路 正难则反 反过来需要考虑的是&#xff1a; (1) 所有满条件一的(x,y)有多少对&#xff1a; x 0 时&#xff0c;有c1对 x 1 时&#xff0c;有c对 ...... x c 时&#xff0c;有1对 以此类推 一共有 (c2)(c1)/2 对 (2) 符合 x y ∈ S的有多少对&#xff1a…...

Java 学习和实践笔记(36):接口(interface)

面向对象的精髓&#xff0c;最能体现这一点的就是接口&#xff01; 为什么我们讨论设计模式都只针对具备了抽象能力的语言&#xff08;比如C、Java、C#等)&#xff0c;就是因为设计模式所研究的&#xff0c;实际上就是如何合理的去抽象。 接口就是一组规范&#xff0c;所有实…...

Elastic Stack--10--QueryBuilders UpdateQuery

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 QueryBuildersESUtil QueryBuilders package com.elasticsearch; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.search.Sea…...

腾讯云服务器CVM_云主机_云计算服务器_弹性云服务器

腾讯云服务器CVM提供安全可靠的弹性计算服务&#xff0c;腾讯云明星级云服务器&#xff0c;弹性计算实时扩展或缩减计算资源&#xff0c;支持包年包月、按量计费和竞价实例计费模式&#xff0c;CVM提供多种CPU、内存、硬盘和带宽可以灵活调整的实例规格&#xff0c;提供9个9的数…...

Java八股文(Spring Boot)

Java八股文のSpring Boot Spring Boot Spring Boot 什么是Spring Boot&#xff1f; Spring Boot是一个用于开发和构建微服务应用程序的框架&#xff0c;它简化了Spring应用的配置和部署。 Spring Boot的核心特性是什么&#xff1f; Spring Boot的核心特性包括自动配置、起步依…...

ts文件怎么无损转换mp4?这样设置转换模式~

TS格式&#xff08;Transport Stream&#xff09;的起源可追溯到数字电视广播领域。设计初衷是解决视频、音频等多媒体数据在传输和存储中的问题。采用一系列标准技术&#xff0c;TS格式让视频信号能够以流的形式传输&#xff0c;因此在数字电视、广播等领域得到广泛应用。 MP4…...

如何在Windows 10上打开和关闭平板模式?这里提供详细步骤

前言 默认情况下&#xff0c;当你将可翻转PC重新配置为平板模式时&#xff0c;Windows 10会自动切换到平板模式。如果你希望手动打开或关闭平板模式&#xff0c;有几种方法可以实现。​ 自动平板模式在Windows 10上如何工作 如果你使用的是二合一可翻转笔记本电脑&#xff0…...

介绍kafka核心原理及底层刷盘机制,集群分片机制,消息丢失和重复消费有对应的线上解决方案

Kafka是一个高性能、分布式、持久化的消息系统&#xff0c;它的核心原理包括发布/订阅模型、分布式日志存储和高吞吐量的数据流处理。 发布/订阅模型&#xff1a;Kafka采用发布/订阅模型&#xff0c;消息的生产者将消息发送到一个或多个主题&#xff08;Topic&#xff09;&…...

基于Python的中医药知识问答系统设计与实现

[简介] 这篇文章主要介绍了基于Python的中医药知识问答系统的设计与实现。该系统利用Python编程语言&#xff0c;结合中医药领域的知识和技术&#xff0c;实现了一个功能强大的问答系统。文章首先介绍了中医药知识的特点和传统问答系统的局限性&#xff0c;然后提出了设计思路…...

QT 如何防止 QTextEdit 自动滚动到最下方

在往QTextEdit里面append字符串时&#xff0c;如果超出其高度&#xff0c;默认会自动滚动到QTextEdit最下方。但是有些场景可能想从文本最开始的地方展示&#xff0c;那么就需要禁止自动滚动。 我们可以在append之后&#xff0c;添加如下代码&#xff1a; //设置编辑框的光标位…...

【C/C++ 学习笔记】指针

【C/C 学习笔记】指针 视频地址: Bilibili 概念 可以通过指针间接访问内存用于保存地址 使用 通过 & 可以获取数据的指针 通过 * 可以取得指针的数据 指针的数据类型就是 数据类型 * int number 10;int *p &number;// 10 cout << "number: " …...

【Node.js从基础到高级运用】十二、身份验证与授权:JWT

身份验证与授权是现代Web应用中不可或缺的部分。了解如何在Node.js应用中实施这些机制&#xff0c;将使你能够构建更安全、更可靠的应用程序。本文将引导你通过使用JWT实现用户注册、登录和权限控制的过程。 JWT&#xff08;Json Web Token&#xff09; JWT是一种用于双方之间…...

蓝桥杯刷题|01入门真题

[蓝桥杯 2020 省 AB1] 解码 题目描述 小明有一串很长的英文字母&#xff0c;可能包含大写和小写。 在这串字母中&#xff0c;有很多连续的是重复的。小明想了一个办法将这串字母表达得更短&#xff1a;将连续的几个相同字母写成字母 出现次数的形式。 例如&#xff0c;连续…...

不止是打字机效果:手把手教你用SpannableStringBuilder打造Android富文本AI对话界面

超越基础文本渲染&#xff1a;用SpannableStringBuilder构建专业级AI对话界面 在移动应用开发中&#xff0c;AI对话界面的用户体验往往决定了产品的专业度。传统的TextView虽然能显示文字&#xff0c;但要实现类似DeepSeek等专业AI产品的交互效果&#xff0c;需要深入掌握Andro…...

Visium HD空转实战:Space Ranger v4.0.1从安装到结果解读全流程

1. Visium HD与Space Ranger初探 第一次接触Visium HD技术时&#xff0c;我被它强大的空间转录组分析能力震撼到了。简单来说&#xff0c;这项技术能让我们在组织切片上精确到单个细胞的位置&#xff0c;同时获取它们的基因表达数据。想象一下&#xff0c;这就像给组织样本拍了…...

小白必看:霜儿-汉服-造相Z-Turbo从部署到出图全流程解析

小白必看&#xff1a;霜儿-汉服-造相Z-Turbo从部署到出图全流程解析 1. 镜像简介与核心优势 霜儿-汉服-造相Z-Turbo是一款专为汉服写真生成优化的AI模型镜像&#xff0c;基于Xinference框架部署&#xff0c;通过Gradio提供简洁易用的Web界面。与通用文生图模型相比&#xff0…...

3步搞定iOS微信聊天记录完整导出:WeChatExporter终极指南

3步搞定iOS微信聊天记录完整导出&#xff1a;WeChatExporter终极指南 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 还在为无法备份微信聊天记录而烦恼吗&#xff1f;微…...

OpenClaw家装设计:Qwen2.5-VL-7B根据户型图生成3D效果示意图

OpenClaw家装设计&#xff1a;Qwen2.5-VL-7B根据户型图生成3D效果示意图 1. 为什么选择OpenClaw做家装设计自动化 去年装修新房时&#xff0c;我花了大量时间在设计师和施工队之间来回沟通。每次修改设计方案都需要等待设计师重新出图&#xff0c;周期长、成本高。直到发现Op…...

2.Pandas在电商数据处理中的核心价值

第1章 Pandas在电商数据处理中应用 1.1 为什么Excel不够用&#xff0c;需要Pandas Pandas是Python里的数据分析核心库。它的名字来自“Panel Data”&#xff08;面板数据&#xff09;&#xff0c;专门处理表格型数据。电商数据分析里&#xff0c;Pandas主要解决三类问题&#x…...

STM32F746G-DISCO音频BSP详解:I2S+DMA+CS43L22驱动开发

1. 项目概述AUDIO_DISCO_F746NG是 STMicroelectronics 官方 STM32CubeF7 软件包中为STM32F746G-DISCO 探索套件提供的音频底层支持包&#xff08;Board Support Package, BSP&#xff09;核心类。该类并非独立音频处理库&#xff0c;而是面向硬件抽象层&#xff08;HAL&#xf…...

Qwen3.5-2B边缘部署教程:ARM架构服务器上运行多模态模型详细步骤

Qwen3.5-2B边缘部署教程&#xff1a;ARM架构服务器上运行多模态模型详细步骤 1. 引言 Qwen3.5-2B是阿里云推出的轻量化多模态基础模型&#xff0c;属于Qwen3.5系列的小参数版本&#xff08;20亿参数&#xff09;。这款模型主打低功耗、低门槛部署&#xff0c;特别适配端侧和边…...

【若依】框架:从零构建前后端分离项目实战

1. 环境准备与项目初始化 第一次接触若依框架时&#xff0c;我被它"开箱即用"的特性惊艳到了。这个基于Spring Boot的权限管理系统&#xff0c;前后端分离架构设计得非常清晰。下面我会手把手带你完成环境搭建&#xff0c;过程中遇到的坑也会一并说明。 开发环境需要…...

3步快速上手!终极缠论量化工具:基于TradingView本地SDK的几何交易可视化完整指南

3步快速上手&#xff01;终极缠论量化工具&#xff1a;基于TradingView本地SDK的几何交易可视化完整指南 【免费下载链接】chanvis 基于TradingView本地SDK的可视化前后端代码&#xff0c;适用于缠论量化研究&#xff0c;和其他的基于几何交易的量化研究。 缠论量化 摩尔缠论 缠…...