vue项目配置环境变量

这篇博客介绍了如何在Vue项目中利用dotenv解决多环境配置问题。通过安装dotenv,在项目根目录创建.env文件,根据不同的环境(如开发、测试、预发布、生产)创建相应的.env文件,并设置相关配置。在package.json中定义打包命令,结合vue-cli-service build --mode选项,实现一键打包不同环境的项目。同时,调整vue.config.js的outputDir,确保打包文件位于目标文件夹。这种方法能避免手动修改配置的繁琐和错误,提高工作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

更新一下--------------------------------------------------------------------------------


最近了解到dotenv,可以解决在开发环境的多环境配置问题。
在项目中安装 dotenv

npm run dotenv

根目录下创建 .env 文件
HOST=localhost PORT=3000
根目录下 index.js 下引入 dotenv 并使用
require('dotenv').config({ path: '.env' })

// 使用 console.log(process.env.HOST) // localhost console.log(process.env.PORT) // 3000

需求: 前后端分离的项目中,前端会有很多环境:本地开发,测试环境,预发布环境,正式上线环境等等,我们的项目有3套基本相同的项目,意思是有12个以上环境,当每个环境都需要打包的时候,手动修改配置就很繁琐而且难免出错,比如每个环境对应的服务器地址不同,项目名称不同。
解决: 在根目录下创建.env.xxx文件,例如.env.development,.env.production,.env.staging,.env.51(51是我的服务器标识)等等
这些都是配置环境变量
里面配置你需要切换的服务器连接地址,其他项目名称,以及打包后的文件地址。
在这里插入图片描述
最后在package.json配置打包命令即可:
在这里插入图片描述
这样,执行哪个命令就是将对应配置的项目打包。其中,vue-cli-service build --mode xx 是修改了环境变量,即process.env里的环境变量VUE_APP_baseUrl等,其中&&是将两个命令连接起来,前面一个正确执行后执行后面的命令,可以用&&连接多个命令。
同时要注意配置outputDir,即打包后的文件的位置。默认是dist,可以自己配置,这样一键打包多个项目位于不同的目标文件夹下。
outputDir位于vue.config.js里:在这里插入图片描述
运行效果:
在这里插入图片描述
在这里插入图片描述
这样就会成功打出两个不同配置的包。
如果对各位有用,希望能点个赞!

---------------------------------补充一下---------------------------------
把NODE_ENV设置为production
把NODE_ENV设置为production,目的是在production模式下打包没有sourceMap,如下是我的vue.config.js的配置,sourceMap使得打包后体积变大一倍,然而它只是用来追踪bug的,development模式下可以配置它。
在这里插入图片描述

### Vue 项目配置环境变量的方法及最佳实践 #### 方法概述 Vue CLI 提供了一种简单的方式来管理项目环境变量。通过 `.env` 文件及其变体,开发者可以在不同环境下加载特定的配置[^2]。 #### 环境变量文件命名规则 Vue CLI 支持多种类型的 `.env` 文件来满足不同的需求: - **`.env`**: 所有环境中都会加载的基础配置。 - **`.env.local`**: 类似于 `.env`,但在版本控制系统中会被忽略(通常通过 `.gitignore` 实现),适合存储敏感数据。 - **`.env.[mode]`**: 仅在指定模式下加载,例如生产环境中的 `production` 或开发环境中的 `development`。 - **`.env.[mode].local`**: 同样只在指定模式下加载,但不会被提交到远程仓库,适用于本地开发时的秘密密钥或其他个性化设置[^2]。 这些文件应放置在项目的根目录下,并遵循一定的命名约定以便 Vue CLI 自动识别并处理它们。 #### 定义与使用环境变量 为了使自定义变量生效,需确保其名称前缀为 `VUE_APP_`。这是由于 Vue CLI 对此类变量进行了特殊处理,允许它们在客户端代码中安全暴露[^1]。 ##### 示例:创建环境变量 假设我们需要分别为开发和生产环境设定 API 地址,则可在如下位置添加相应条目: 对于开发环境,在 `.env.development` 中写入: ```plaintext VUE_APP_API_URL=http://localhost:8080/api ``` 而对于生产环境,则是在 `.env.production` 设置: ```plaintext VUE_APP_API_URL=https://api.example.com/prod-api ``` 之后即可在整个应用程序内通过 `process.env.VUE_APP_API_URL` 访问此值[^2]。 #### 加载机制说明 当执行构建命令 (如 `npm run build`) 或启动服务 (`npm run serve`) 时,Vue CLI 将依据当前的工作模式自动选取匹配的 `.env.*` 文件内容注入至进程中。因此无需手动切换配置文件,只需保证 CI/CD 流程正确指定了目标模式即可[^3]。 #### 安全性考虑 尽管可以通过 `.env.local` 和其他类似的局部文件隐藏部分信息,但仍建议避免将任何机密资料硬编码进源码库中。如果确实存在需要保护的数据项,请利用外部工具或者云服务商提供的 Secrets Management 功能替代直接嵌套的方式[^1]。 #### 多环境支持的最佳实践总结 采用清晰分离各阶段所需参数的设计思路有助于提升整体灵活性以及降低误操作风险;同时配合合理的权限控制策略进一步保障系统的稳健运行[^4]。 ```javascript // 在 JavaScript 文件里读取已声明的 VUE_APP_* 开头的全局变量 console.log(process.env.VUE_APP_API_URL); ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值