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

Vue3+TS+vite项目本地测试数据接口搭建

【环境说明】

"vue": "^3.5.13",

"vite": "^6.2.0",

"vite-plugin-mock": "^3.0.2"

【项目结构】

1. 安装依赖

npm install vite-plugin-mock mockjs --save-dev
npm i --save-dev @types/mockjs

2. 配置vite.config.ts

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { viteMockServe } from 'vite-plugin-mock'
import path from 'path'// https://vite.dev/config/
export default defineConfig(({ command }) => ({plugins: [vue(),viteMockServe({mockPath: 'src/mock', // mock文件存放目录enable: command === 'serve', // 只在开发服务器启用logger: true // 是否在控制台显示请求日志})],resolve: {alias: {'@': path.resolve(__dirname, './src')}},base: '/',server: {// 端口号port: 3000,// 监听所有地址host: '0.0.0.0',// 服务启动时是否自动打开浏览器open: true,// 允许跨域cors: true,// 自定义代理规则proxy: {// 完整写法'/api': {target: 'http://xx.xx.xx.xx:8080/api/', // 本地后端接口changeOrigin: true,rewrite: path => path.replace(/^\/api/, '')}}}
}))

版本兼容说明

1. v1.x 版本:使用 localEnabled、prodEnabled 区分开发和生产环境

2. v2.x+ 版本:使用 enbale替代,localEnabled、prodEnabled 已弃用

3. v2.x+ 版本:默认支持 TypeScript文件,不再需要显示配置,supportsTs 已移除

3. 创建Mock文件

在项目src目录下创建一个mock文件夹 /src/mock/

/src/mock/user.ts

import { type MockMethod } from 'vite-plugin-mock'
import Mock from 'mockjs'export default [// 用户登录{url: '/login',method: 'post',timeout: 500,response: ({ body }: any) => {console.log('==== Mock Request Body: =======', body) // 自定义日志const { userid, password } = bodyif (userid === '202511' && password === '1234') {return {code: 200,msg: '登录成功',data: {user: {userid: '202511',username: 'TestUser01'},token: Mock.Random.guid()}}} else {return {code: 202,msg: '用户名或密码错误',data: null}}}}
] as MockMethod[]

4. 创建Mock入口文件

/src/mock/index.ts

import type { MockMethod } from 'vite-plugin-mock'
import user from './user'export default [...user] as MockMethod[]

5. 设置开发环境/生产环境

.env.development

VITE_BASE_URL=/

.env.production

VITE_BASE_URL=http://xx.xx.xx.xx:8080/api

6. axios配置

const config = {baseURL: import.meta.env.VITE_BASE_URL || '/', // api地址 - 确保这里是 / 或空timeout: 5000 // request timeout
}

7. 接口调用

/** 用户登录* @param userid* @param password* **/
export const loginCheckApi = (params: LoginRequest): Promise<LoginResponse> => {return http.post('/login', params)
}

正常启动,控制台会输出以下内容 

http://www.xdnf.cn/news/316423.html

相关文章:

  • 1.1.2 简化迭代器 yield return的使用
  • 音乐网站|基于SprinBoot+vue的音乐网站(源码+数据库+文档)
  • RPA与After Effects 2024深度融合:自动化影视特效全链路革命
  • ESP32蓝牙开发笔记(十五)
  • 开发 Chrome 扩展中的侧边栏图标设置实录(Manifest V3)
  • [特殊字符] Milvus + LLM大模型:打造智能电影知识库系统
  • Python入门(二)
  • 融合静态图与动态智能:重构下一代智能系统架构
  • 2025年渗透测试面试题总结-渗透岗位全职工作面试(附回答)(题目+回答)
  • 【Redis】哨兵机制和集群
  • MATLAB的cvpartition函数用法
  • AI辅助DevOps与自动化测试:重构软件工程效率边界
  • stm32之ADC
  • 什么是智能合约?区块链上的自动化契约
  • 文章记单词 | 第67篇(六级)
  • ​​大疆无人机SDR 链路​​
  • 28. C++位图 布隆过滤器 哈希切割相关
  • PostgreSQL 系统管理函数详解
  • Rest架构解说
  • idea里maven自定义的setting.xml文件不生效问题
  • 基于DR模式的LVS集群案例
  • AI检测的荒谬性:当规则沦为一场概率游戏
  • LLaMA-Omni 2:基于 LLM 的自回归流语音合成实时口语聊天机器人
  • 单片机-STM32部分:6、不同编程方式-寄存器、标准库、HAL库、LL库
  • 中间件-RocketMQ
  • k8s | Kubernetes 服务暴露:NodePort、Ingress 与 YAML 配置详解
  • 【代码优化篇】强缓存和协商缓存
  • ABP-Book Store Application中文讲解 - 前期准备 - Part 2:创建Acme.BookStore + Angular
  • 【ArcGIS Pro微课1000例】0068:Pro原来可以制作演示文稿(PPT)
  • 理解与清理 Docker 中的悬空镜像(Dangling Images)