vite多环境配置
需求
使用vite+vue3开发时,项目需要将环境分为不同的端。各个端之间接口地址、业务逻辑、项目打包目录等有区别。所以生产环境配置需要区分开来,以实现不同端的区别。
实现
1、添加配置文件
# .env.user
# 接口请求地址前缀
VITE_APP_API_PREFIX = /api
# 删除 console 代码
VITE_DROP_CONSOLE = true
# 生产环境配置文件名称
VITE_GLOB_CONFIG_FILE_NAME = app.config.js
# 打包生成目录
VITE_OUTPUT_DIR = user
# 平台
VITE_PLATFORM = user
# 重定向路径
VITE_REDIRECT_INDEX = "/index"
# .env.admin
# 接口请求地址前缀
VITE_APP_API_PREFIX = /admin-api
# 删除 console 代码
VITE_DROP_CONSOLE = true
# 生产环境配置文件名称
VITE_GLOB_CONFIG_FILE_NAME = app.config.js
# 打包生成目录
VITE_OUTPUT_DIR = admin
# 平台
VITE_PLATFORM = expert
# 重定向路径
VITE_REDIRECT_INDEX = "/home"
# .env.admin
# 接口请求地址前缀
VITE_APP_API_PREFIX = /expert-api
# 删除 console 代码
VITE_DROP_CONSOLE = true
# 生产环境配置文件名称
VITE_GLOB_CONFIG_FILE_NAME = app.config.js
# 打包生成目录
VITE_OUTPUT_DIR = expert
# 平台
VITE_PLATFORM = expert
# 重定向路径
VITE_REDIRECT_INDEX = "/home"
2、配置package.json
"scripts": {
"dev": "vite",
"build:admin": "vue-tsc --noEmit && vite build",
"build:user": "vue-tsc --noEmit && vite build --mode user",
"build:expert": "vue-tsc --noEmit && vite build --mode expert",
"build": "npm run build:admin && npm run build:user && npm run build:expert",
},
3、在项目中使用
const baseUrl = import.meta.env.VITE_APP_API_PREFIX;
知识点
-
vite build --mode user
中的user对应配置文件文件名中的.env.user
,该配置文件中的配置项会覆盖.env文件的配置项。 -
为了防止意外地将一些环境变量泄露到客户端,只有以
VITE_
为前缀的变量才会暴露给经过 vite 处理的代码。 -
Vite 在一个特殊的
import.meta.env
对象上暴露环境变量。这里有一些在所有情况下都可以使用的内建变量: