vue-vben-admin多环境配置:开发、测试与生产环境隔离

vue-vben-admin多环境配置:开发、测试与生产环境隔离

【免费下载链接】vue-vben-admin 【免费下载链接】vue-vben-admin 项目地址: https://gitcode.com/gh_mirrors/vue/vue-vben-admin

你是否还在为开发环境的API地址提交到生产环境而头疼?是否因测试环境的配置与生产环境混淆导致线上故障?本文将带你一文掌握vue-vben-admin的多环境隔离方案,通过简单配置实现开发、测试、生产环境的无缝切换。读完你将学会:环境配置文件的创建方法、命令行切换技巧、环境变量的正确使用,以及如何通过配置文件实现不同环境的参数隔离。

环境配置基础架构

vue-vben-admin采用Vite的环境变量机制,结合自定义配置文件实现多环境隔离。核心配置体系由三部分组成:

1. 环境变量文件

项目根目录下通过不同后缀名的.env文件区分环境:

  • 开发环境.env.development(默认未创建,需手动添加)
  • 测试环境.env.test(默认未创建,需手动添加)
  • 生产环境.env.production(默认未创建,需手动添加)

这些文件中定义的变量需以VITE_为前缀才能被Vite识别,例如:

VITE_GLOB_API_URL=http://dev-api.vbenadmin.com
VITE_GLOB_APP_TITLE=VueVbenAdmin-开发环境

2. 构建命令配置

package.json中已预设多环境构建命令,关键配置如下:

命令环境用途
pnpm dev开发环境本地开发调试,使用.env.development
pnpm build生产环境正式环境打包,使用.env.production
pnpm build:test测试环境测试环境打包,使用.env.test
pnpm build:analyze分析模式构建包体积分析,基于生产环境配置

3. 环境工具函数

src/utils/env.ts提供了环境判断和变量获取的核心方法:

  • getEnv():获取当前环境模式(development/test/production)
  • isDevMode():判断是否为开发环境
  • getAppEnvConfig():获取应用环境配置,自动读取对应.env文件的变量

从零开始配置多环境

步骤1:创建环境变量文件

在项目根目录创建以下三个文件:

开发环境配置(.env.development)
# 应用标题
VITE_GLOB_APP_TITLE=VueVbenAdmin-开发环境
# API基础地址
VITE_GLOB_API_URL=http://localhost:3000
# API请求前缀
VITE_GLOB_API_URL_PREFIX=/basic-api
# 上传地址
VITE_GLOB_UPLOAD_URL=http://localhost:3000/upload
测试环境配置(.env.test)
VITE_GLOB_APP_TITLE=VueVbenAdmin-测试环境
VITE_GLOB_API_URL=http://test-api.vbenadmin.com
VITE_GLOB_API_URL_PREFIX=/basic-api
VITE_GLOB_UPLOAD_URL=http://test-api.vbenadmin.com/upload
生产环境配置(.env.production)
VITE_GLOB_APP_TITLE=VueVbenAdmin
VITE_GLOB_API_URL=https://api.vbenadmin.com
VITE_GLOB_API_URL_PREFIX=/basic-api
VITE_GLOB_UPLOAD_URL=https://api.vbenadmin.com/upload

步骤2:配置开发环境代理

开发环境通常需要代理API请求以解决跨域问题,修改vite.config.tsserver.proxy配置:

// vite.config.ts 第17-34行
server: {
  proxy: {
    '/basic-api': {
      target: 'http://localhost:3000', // 开发环境API服务
      changeOrigin: true,
      ws: true,
      rewrite: (path) => path.replace(new RegExp(`^/basic-api`), ''),
    },
    '/upload': {
      target: 'http://localhost:3000/upload', // 开发环境上传服务
      changeOrigin: true,
      ws: true,
      rewrite: (path) => path.replace(new RegExp(`^/upload`), ''),
    },
  },
  open: true, // 自动打开浏览器
}

步骤3:使用环境变量

在代码中通过src/utils/env.ts提供的getAppEnvConfig()函数获取环境变量:

import { getAppEnvConfig } from '@/utils/env';

const { VITE_GLOB_API_URL, VITE_GLOB_APP_TITLE } = getAppEnvConfig();

// 示例:配置Axios基础地址
axios.defaults.baseURL = VITE_GLOB_API_URL;

// 示例:设置页面标题
document.title = VITE_GLOB_APP_TITLE;

环境隔离最佳实践

1. 配置文件分离

将环境相关的配置集中管理,推荐创建以下目录结构:

src/settings/
├── env/
│   ├── development.ts  # 开发环境特有配置
│   ├── test.ts         # 测试环境特有配置
│   └── production.ts   # 生产环境特有配置
└── projectSetting.ts   # 通用项目配置

src/settings/projectSetting.ts中根据环境动态导入配置:

import { isDevMode } from '@/utils/env';
import devSettings from './env/development';
import prodSettings from './env/production';

const setting = isDevMode() ? devSettings : prodSettings;

export default setting;

2. 环境判断应用场景

在实际开发中,可根据环境执行不同逻辑:

import { isDevMode, isProdMode } from '@/utils/env';

if (isDevMode()) {
  // 开发环境:启用Mock数据
  import('@/mock/_createProductionServer').then(({ createServer }) => {
    createServer();
  });
}

if (isProdMode()) {
  // 生产环境:启用错误监控
  import('@/logics/error-handle').then(({ setupErrorHandle }) => {
    setupErrorHandle();
  });
}

3. 环境切换命令速查

操作命令说明
启动开发环境pnpm dev自动加载.env.development
构建测试环境pnpm build:test生成测试环境包,输出到dist/
预览测试环境pnpm preview --mode test本地预览测试环境构建结果
构建生产环境pnpm build生成生产环境包,输出到dist/

环境配置常见问题

1. 环境变量不生效?

  • 确保变量名以VITE_开头
  • 重启开发服务器(pnpm dev)使配置生效
  • 检查是否在代码中正确使用getAppEnvConfig()获取

2. 如何添加自定义环境?

如需添加预发布环境(staging):

  1. 创建.env.staging文件
  2. package.json添加命令:
    "build:staging": "cross-env NODE_OPTIONS=--max-old-space-size=8192 pnpm vite build --mode staging"

3. 开发与生产环境样式差异?

可通过src/design/theme.less根据环境变量定义不同主题:

// 开发环境主题变量
@dev-primary-color: #F53F3F;
// 生产环境主题变量
@prod-primary-color: #1890FF;

// 根据环境切换
:root {
  --primary-color: v-bind('isDevMode() ? @dev-primary-color : @prod-primary-color');
}

总结与展望

通过本文介绍的多环境配置方案,你已掌握:

  • 基于.env文件的环境变量管理
  • 使用package.json命令切换环境
  • 通过src/utils/env.ts实现环境判断
  • 环境隔离的最佳实践与常见问题解决

建议团队建立统一的环境配置规范,包括:

  1. 环境变量命名规范(如VITE_API_XXX表示API相关)
  2. 必选环境变量清单(附默认值)
  3. 配置文件模板(可提交到Git)

VueVbenAdmin架构图

通过规范的多环境配置,不仅能避免环境参数混淆导致的线上问题,还能大幅提升团队协作效率。立即按照本文步骤配置你的项目环境,体验无缝切换开发、测试与生产环境的顺畅开发流程!

提示:环境配置文件建议添加到.gitignore中,只提交模板文件(如.env.example),避免敏感信息泄露。

【免费下载链接】vue-vben-admin 【免费下载链接】vue-vben-admin 项目地址: https://gitcode.com/gh_mirrors/vue/vue-vben-admin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值