前端——Vue 环境变量配置.env

本文介绍了在前端开发中如何管理和使用环境变量,包括开发、测试和生产环境的不同配置,以及如何创建和使用.env文件进行环境切换。通过设置VUE_APP_开头的变量,可以在不同环境中读取相应的配置,如API域名,实现动态切换。同时,讲解了如何在Vue项目中根据process.env.NODE_ENV判断当前环境,并展示了在axios中根据环境配置基础URL的例子。

一、说明及使用

1.说明:

不同环境下,开发环境、测试环境、生产环境/上线环境,访问的服务器等等配置不同,可以在开发时进行统一配置后,不同环境下,自动读取配置好的参数。

2.在开发的时候一般会有是三个环境

   开发环境 测试环境 线上环境

   vue 中有个概念就是模式,默认先 vue cli 有三个模式

  • development开发环境模式用于vue-cli-service serve

  • production生产环境模式用于 vue-cli-service buildvue-cli-service test:e2e

  • test测试环境模式用于vue-cli-service test:unit

3.但是往往开发的时候可能不止有三种:

  • 本地环境(local)

  • 开发环境(development)

  • 测试环境(devtest)

  • 预发布环境(beta)

  • 生产环境(production)

4.创建不同环境变量文件

  在项目根目录下,配置环境文件:

  通过为 .env 文件增加后缀来设置某个模式下特有的环境变量。

  • 在项目根路径下设置 新建对应文件 .env.development(开发环境文件) .env.production(生产环境文件).env.devtest(测试环境文件)

  • 在每个文件写入如下内容(VUE_APP_随便写)

VUE_APP_XIAOMING = "开发模式"
  • package.json 环境对应的执行语句

"scripts": {
  "serve": "vue-cli-service serve",//开发模式
  "build": "vue-cli-service build",//生产模式
  "dev_test_build": "vue-cli-service build --mode development_test",//测试模式
  "lint": "vue-cli-service lint"
},
  • 使用变量process.env.你的内容即可得到

import { reactive, ref,onMounted} from "vue";
onMounted(()=>{
    console.log(process.env.VUE_APP_XIAOMING);
})

二、其他

1.获取当前的环境

process.env.NODE_ENV

2.获取.env配置文件中VUE_APP_API

process.env.VUE_APP_API

3.在配置了环境.env文件VUE_APP_API

一般是为了判断不同环境下,进行不同配置的读取;

(1)比如访问不同的服务器时,对应不同的域名,将域名存在.env中,根据运行环境进行读取;

请求访问的基础路径——域名;

使用axios创建实例时,可以配置基础路径baseURL:

/* 1.引入axios */
import axios from 'axios';

/* 2.创建axios实例的方式使用 */
//不同环境下,访问域名
let axiosUrl = "";
if (process.env.NODE_ENV === "development") {
    axiosUrl = process.env.VUE_APP_API;
} else {
    axiosUrl = process.env.VUE_APP_API;
}
//创建实例,配置基础路径
const service = axios.create({
    baseURL: axiosUrl //基础路径,一般是访问域名;后续访问地址就不需要写前缀域名了
});

### Vue 3 中 `.env` 文件的配置方法 在基于 Vite 的 Vue 3 项目中,`.env` 配置文件被用来管理不同环境下的变量设置。这些文件允许开发者轻松切换开发、生产以及测试环境中的特定配置。 #### 环境变量的作用范围 Vite 支持通过 `.env.*` 文件来定义不同的环境变量。常见的文件名包括但不限于: - **`.env.development`**: 定义开发环境下的全局变量。 - **`.env.production`**: 定义生产环境下的全局变量。 - **`.env.test`**: 定义测试环境下的全局变量。 所有的环境变量都必须以前缀 `VITE_` 开始才能生效[^1]。这是因为 Vite 只会暴露带有此前缀的变量到客户端代码中。 #### 创建并配置 `.env` 文件 假设我们正在构建一个 Vue 3 应用程序,在项目的根目录下可以创建如下几个文件: ##### 1. `.env.development` 这是开发环境专用的配置文件,通常用于本地调试和开发阶段。例如: ```plaintext # 基础 API 地址 (开发模式) VITE_APP_BASE_API=/dev-api # 页面标题 VITE_APP_TITLE=页面标题 - 开发版 # 是否启用路由懒加载 VITE_ROUTE_LAZY=true ``` ##### 2. `.env.production` 这是生产环境使用的配置文件,适用于部署后的实际运行状态。例如: ```plaintext # 生产环境中基础 API 地址 VITE_APP_BASE_API=https://api.example.com/prod-api # 页面标题 VITE_APP_TITLE=最终产品名称 # 启动性能优化选项 VITE_ENABLE_PERFORMANCE=false ``` ##### 3. `.env.test` 如果需要单独针对单元测试或集成测试调整某些参数,则可以通过这个文件实现。例如: ```plaintext # 测试服务器的基础 URL VITE_TEST_SERVER=http://localhost:8080/test-server/ # 自定义标志位表示当前处于测试模式 VITE_IS_TEST_ENVIRONMENT=true ``` #### 如何访问这些环境变量? 一旦设置了上述环境变量之后,在 JavaScript 或 TypeScript 文件里就可以很方便地读取它们。例如在一个组件或者服务模块中这样写: ```javascript console.log(import.meta.env.VITE_APP_BASE_API); // 输出对应环境下的API路径 console.log(import.meta.env.VITE_APP_TITLE); // 获取应用标题 if (import.meta.env.VITE_IS_TEST_ENVIRONMENT === 'true') { console.log('当前为测试环境'); } ``` 注意这里使用的是 `import.meta.env` 对象而不是像 Vue CLI 那样依赖于 process.env[^3]^。这反映了现代前端框架向更轻量级方向发展的趋势之一——减少不必要的 polyfills 和兼容层引入。 另外值得注意的一点是,默认情况下只有那些以大写字母开头并且包含至少一个下划线字符 `_` 的键会被解析成真正的环境变量。因此命名时要遵循这一规则以免造成意外行为。 最后提醒一下安全方面的问题:永远不要把敏感数据硬编码进源码仓库里的任何地方;对于数据库密码之类的机密信息应该考虑采用更加安全的方式传递给应用程序实例执行期间动态注入而非静态存储形式存在版本控制系统当中[^2]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值