vite 配置开发环境和测试环境,接口 API 自动切换

news/2024/10/15 17:47:39/

在Vite项目中配置开发环境和测试环境,并实现接口API的自动切换,可以通过配置环境变量和相应的代理设置来完成。以下是一个详细的步骤指南:

一、创建环境文件

在项目根目录下创建.env.env.development.env.test文件,用于存储不同环境下的配置信息。

  1. .env:全局环境变量文件,当没有设置其他环境变量时,会加载这个文件里的内容。
VITE_BASE_API='/api'  # 默认API接口前缀
VITE_APP_NAME='My App'  # 应用名称
  1. .env.development:开发环境下的配置文件。
NODE_ENV=development
VITE_BASE_API='/dev-api'  # 开发环境下的API接口前缀
  1. .env.test:测试环境下的配置文件。
NODE_ENV=test
VITE_BASE_API='/test-api'  # 测试环境下的API接口前缀

二、配置Vite

vite.config.tsvite.config.js文件中,根据环境变量动态配置代理和其他相关设置。

import { defineConfig, loadEnv } from 'vite';
import path from 'path';export default ({ mode }: { mode: string }) => {const viteEnv = loadEnv(mode, process.cwd());console.log(viteEnv, '当前环境');return defineConfig({server: {host: '127.0.0.1',port: 3000,open: false,proxy: {[viteEnv.VITE_BASE_API]: {target: viteEnv.VITE_API_URL || 'https://example.com',  // 可以在环境文件中配置具体的API URL,也可以在这里默认一个changeOrigin: true,rewrite: (path) => path.replace(/^\/dev-api|\/test-api/, ''),  // 根据实际API前缀进行重写},},},// 其他配置...});
};

注意:上面的rewrite函数需要根据实际的API前缀进行调整。如果API前缀是固定的,可以直接写死;如果前缀是动态的(如根据环境变量变化),则需要使用类似上面的方式进行重写。

三、配置package.json

package.json文件的scripts部分,添加用于启动开发环境和测试环境的命令。

"scripts": {"dev": "vite --mode development","test": "vite --mode test","build": "vite build --mode production",  // 生产环境构建命令(虽然这里没提到生产环境,但通常也需要一个构建命令)// 其他脚本...
}

四、使用环境变量

在项目的代码中,可以通过import.meta.env来访问环境变量。

// 例如,在main.ts或main.js中
console.log(import.meta.env.VITE_BASE_API);  // 输出当前环境的API接口前缀// 发起API请求时,使用VITE_BASE_API作为前缀
axios.get(`${import.meta.env.VITE_BASE_API}/some-endpoint`).then(response => {console.log(response.data);
});

五、运行和测试

  1. 启动开发环境:运行npm run devyarn dev,Vite将加载.env.development文件,并使用开发环境下的API接口前缀。
  2. 启动测试环境:运行npm run testyarn test,Vite将加载.env.test文件,并使用测试环境下的API接口前缀。

通过以上步骤,你就可以在Vite项目中配置开发环境和测试环境,并实现接口API的自动切换了。


http://www.ppmy.cn/news/1539535.html

相关文章

【Linux】命令行下的增删查改之“查看”

致谢:Linux常用命令大全(手册) – 真正好用的Linux命令在线查询网站 提供的命令查询 头部内容获取(head) head命令的功能是显示文件开头的内容,默认值为前10行。 指令参数: -n 定义显示行数 -c 指定显示头部内容的字符数 -v 总是显示文件名的头信…

洗衣店管理新思路:Spring Boot订单管理系统

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适…

.net core 实现多线程方式有哪些

在 .NET Core 中,有多种方式可以实现多线程编程。这些方式包括使用 Thread 类、Task 和 Parallel 类库。每种方法都有其适用场景和优缺点。下面我将通过代码示例来展示这些不同的多线程实现方式。 1. 使用 Thread 类 Thread 类是 .NET 中最基本的多线程实现方式。…

less和sass基本使用

变量 变量在LESS和SASS中都以符号定义,可以在全局范围内使用,也可以在局部范围内定义和使用。 LESS示例: primary-color: #3498db; padding: 15px;.article {background-color: primary-color;padding: padding; }SASS示例: $…

PHP智慧餐饮新风尚点餐系统

智慧餐饮新风尚点餐系统 —— 美食与科技的完美碰撞 🍽️ 开篇:智慧餐饮的崛起 在快节奏的现代生活中,智慧餐饮正逐渐成为我们日常的一部分。随着科技的飞速发展,餐饮行业也在不断创新,力求为顾客提供更加便捷、高效…

SpringBoot教程(二十四) | SpringBoot实现分布式定时任务之Quartz(动态新增、修改等操作)

SpringBoot教程(二十四) | SpringBoot实现分布式定时任务之Quartz(动态新增、修改等操作) 前言数据库脚本创建需要被调度的方法创建相关实体类创建业务层接口创建业务层实现类控制层类测试结果 前言 我这边的SpringBoot的版本为2…

Go 语言中的格式化占位符

在 Go 语言中,fmt 包提供了大量的格式化占位符,用于格式化输出不同类型的数据。选择合适的占位符,可以确保输出的内容格式正确、清晰易懂。 常见的占位符: 基本类型 %v:按值的默认格式输出。适用于任何类型。%v&…

Android常用组件

目录 1. TextView 控件 常用属性: 1)android:text: 2)android:gravity: 3)android:textSize: 4)android:textColor: 5)android:background: 6)android:padding: 7)android:layout_width 和 andr…