当前位置:首页 > 技术 > 正文内容

Vue CLI 3+ 中配置多环境变量的实践

访客 技术 2026年6月3日 1

使用 vue.config.js 管理开发、测试与生产环境配置

在 Vue CLI 3 及以上版本中,项目结构进行了优化,移除了传统的 buildconfig 目录。取而代之的是通过 vue.config.js 文件进行 Webpack 的自定义配置,同时支持基于环境变量的多环境管理。

环境变量配置方式

通过在项目根目录创建不同环境的配置文件,可实现自动加载对应环境变量。所有自定义变量需以 VUE_APP_ 开头,否则不会被注入到客户端代码中。

本地开发环境

创建文件:.env.development

// .env.development
NODE_ENV = development
VUE_APP_API_BASE = 'https://api.dev.example.com'
VUE_APP_DEBUG = true

测试环境

创建文件:.env.test

// .env.test
NODE_ENV = test
VUE_APP_API_BASE = 'https://api.test.example.com'
VUE_APP_DEBUG = false

生产环境

创建文件:.env.production

// .env.production
NODE_ENV = production
VUE_APP_API_BASE = 'https://api.prod.example.com'
VUE_APP_DEBUG = false

package.json 脚本配置

package.json 中定义运行命令,指定环境模式:

{
  "scripts": {
    "dev": "vue-cli-service serve",
    "build:test": "vue-cli-service build --mode test",
    "build:prod": "vue-cli-service build --mode production"
  }
}

在应用中使用环境变量

可在任意 JavaScript 模块中访问这些变量,例如在 main.js 或组件中:

console.log(process.env.NODE_ENV);        // development / test / production
console.log(process.env.VUE_APP_API_BASE); // API 地址根据环境变化
console.log(process.env.VUE_APP_DEBUG);    // 控制调试开关

运行时行为说明

  • npm run dev:默认加载 .env.development,用于本地开发。
  • npm run build:test:启用 --mode test,读取 .env.test 配置。
  • npm run build:prod:构建生产包,使用 .env.production 配置。

若未明确指定模式,vue-cli-service build 默认使用 production 模式。

注意事项

  • 自定义环境变量必须以 VUE_APP_ 为前缀,否则无法被注入到前端代码中。
  • 不要在环境文件中设置 baseUrl 等已被保留的关键字段(除非特别需要)。
  • 建议将敏感信息如 token、密钥等避免直接写入环境文件,可通过后端接口动态获取。

此机制使得项目在不同阶段具备独立的配置能力,提升部署灵活性和安全性。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。