程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • Vue2

  • Vue3

  • vue3 + TS 项目集成

    • 集成element-plus
    • 项目配置 src 别名
    • 项目配置环境变量
      • 1. 为什么要使用环境变量
      • 2. 在 Vue 项目中创建环境变量文件
        • .env.development(开发环境)
        • .env.test(测试环境)
        • .env.production(生产环境)
      • 3. 配置 Vite 运行环境
        • 修改 `package.json`
        • 运行不同环境
      • 4. 在 Vue 代码中使用环境变量
    • 项目集成 SVG 图标
    • 项目集成 SASS(SCSS)
    • 项目集成 Mock 数据
    • 项目集成axios二次封装
    • 项目集成 vite调试工具
    • 项目集成自动注册组件
    • 项目集成自动导入 API
  • Vue全家桶
  • vue3 + TS 项目集成
scholar
2025-04-30
目录

项目配置环境变量

# 项目配置环境变量

在 Vue3 + Vite 项目开发过程中,我们通常会经历 开发环境(development)、测试环境(testing) 和 生产环境(production)。不同环境下的接口地址、配置项可能不同,如果手动切换这些配置,会非常繁琐且容易出错。因此,我们可以使用 Vite 提供的环境变量功能,让代码根据环境自动切换配置。


# 1. 为什么要使用环境变量

在开发中,我们可能会遇到以下问题:

  • 手动修改 API 地址:每次切换环境时,手动修改 baseURL,容易出错。
  • 不同环境有不同的配置:比如 日志开关、调试模式、第三方 SDK 配置等。
  • 提升开发效率:环境变量可以让 Vue 自动选择正确的配置,避免重复操作。

解决方案:

  • Vite 提供 .env 文件,可以根据环境自动加载不同的变量。
  • 在代码中通过 import.meta.env 访问环境变量。

# 2. 在 Vue 项目中创建环境变量文件

在 Vue3 + Vite 项目中,我们需要在 项目根目录 下创建不同的环境变量文件:

项目目录
│── .env.development    // 开发环境
│── .env.test           // 测试环境
│── .env.production     // 生产环境
1
2
3
4

# .env.development(开发环境)

# 变量必须以 VITE_ 为前缀才能暴露给外部读取
NODE_ENV = 'development'
VITE_APP_TITLE = '硅谷甄选运营平台 - 开发环境'
VITE_APP_BASE_API = '/dev-api'
1
2
3
4

# .env.test(测试环境)

NODE_ENV = 'test'
VITE_APP_TITLE = '硅谷甄选运营平台 - 测试环境'
VITE_APP_BASE_API = '/test-api'
1
2
3

# .env.production(生产环境)

NODE_ENV = 'production'
VITE_APP_TITLE = '硅谷甄选运营平台 - 生产环境'
VITE_APP_BASE_API = '/prod-api'
1
2
3

# 3. 配置 Vite 运行环境

Vite 提供了 --mode 选项 来指定当前运行的环境。为了让项目能够正确选择不同环境的 .env 文件,我们需要在 package.json 中配置运行命令。

# 修改 package.json

"scripts": {
  "dev": "vite --open",                      // 默认使用开发环境(development)
  "build:test": "vue-tsc && vite build --mode test",       // 使用测试环境(test)
  "build:pro": "vue-tsc && vite build --mode production",  // 使用生产环境(production)
  "preview": "vite preview"                  // 预览构建后的生产环境
}
1
2
3
4
5
6

# 运行不同环境

运行命令 使用的环境变量文件
pnpm run dev .env.development
pnpm run build:test .env.test
pnpm run build:pro .env.production

# 4. 在 Vue 代码中使用环境变量

如何获取环境变量

Vite 提供了 import.meta.env 让我们在代码中访问环境变量:

console.log(import.meta.env.VITE_APP_TITLE);  // 打印当前环境的标题
console.log(import.meta.env.VITE_APP_BASE_API);  // 打印 API 地址
1
2

示例:在 API 请求中使用

import axios from 'axios';

const apiClient = axios.create({
  baseURL: import.meta.env.VITE_APP_BASE_API, // 根据环境自动切换 API 地址
  timeout: 5000,
});

export default apiClient;
1
2
3
4
5
6
7
8
编辑此页 (opens new window)
项目配置 src 别名
项目集成 SVG 图标

← 项目配置 src 别名 项目集成 SVG 图标→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式