Vue CLI 环境变量使用指南

一、简介

Vue CLI 是一个强大的前端工程化工具,它提供了丰富的配置选项,包括环境变量的管理。环境变量允许开发者根据不同的运行环境(如开发、测试和生产)应用不同的配置,而无需更改代码。本文将详细介绍如何在 Vue CLI 项目中使用环境变量。

二、 环境变量的基础

在 Vue CLI 项目中,环境变量可以通过 .env 文件系列进行管理。这些文件包括:

  • .env:默认的环境变量文件,所有环境都会加载。
  • .env.local:本地环境变量文件,不会被 Git 跟踪,可用于覆盖 .env 中的变量。
  • .env.development、.env.production、.env.test:分别对应开发、生产和测试环境的变量。
    在这里插入图片描述

三、使用环境变量

1. 定义环境变量

在 .env 文件中定义环境变量,例如:

VUE_APP_TITLE=My Application
VUE_APP_API_URL=https://api.example.com

2. 在代码中访问环境变量

在 Vue 应用中,通过 process.env 对象访问环境变量:

console.log(process.env.VUE_APP_TITLE); // 输出: My Application

注意,环境变量名前会加上 VUE_APP_ 前缀,这是 Vue CLI 的要求。

3. 条件性加载环境变量

Vue CLI 允许你根据不同的环境加载不同的变量。例如,要为生产环境定义特定的变量,可以使用 .env.production 文件:

VUE_APP_PRODUCTION_ONLY_VAR=This is only in production

四、环境模式的配置

1. 设置 NODE_ENV

NODE_ENV 是一个特殊的环境变量,用于指定当前的运行模式。Vue CLI 会根据 NODE_ENV 自动加载对应的 .env 文件:

  • development:开发模式
  • production:生产模式
  • test:测试模式

可以通过命令行参数设置 NODE_ENV,例如:

NODE_ENV=production vue-cli-service build

2. 在 vue.config.js 中使用环境变量

在 vue.config.js 中,你可以使用环境变量来自定义配置:

module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: process.env.VUE_APP_API_URL
      }
    }
  }
};

五、环境变量的高级用法

1. 端口配置

在 .env 文件中设置端口号:

VUE_APP_PORT=8080

然后在 vue.config.js 中使用:

module.exports = {
  devServer: {
    port: process.env.VUE_APP_PORT
  }
};

2. 静态资源的公共路径

设置项目的 publicPath 来定义静态资源的根路径:

module.exports = {
  publicPath: process.env.NODE_ENV === 'production' ? '/cdc-dp/' : '/'
};

3. 环境特定的配置文件

创建环境特定的配置文件,例如 vue.config.development.jsvue.config.production.js,Vue CLI 会根据 NODE_ENV 自动选择加载。

六、总结

Vue CLI 的环境变量功能为前端项目提供了极大的灵活性和便利性。通过合理使用环境变量,可以轻松管理不同环境下的配置,实现项目的快速部署和高效运行。掌握环境变量的使用,是前端工程化的重要一步。

注意:在使用环境变量时,请确保不要将敏感信息(如API密钥、数据库密码等)硬编码在代码中。对于生产环境的变量,应使用安全的配置管理方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/689759.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI图书推荐:用ChatGPT来写非虚构类书籍

这本书《用ChatGPT来写非虚构类书籍 》(ChatGPT For KDP_ A manual from an experienced self-publisher to nonfiction authors for writing the book you were born to write with ChatGPT prompts mastering)是一本专为非虚构类书籍作者编写的指南&am…

英伟达黄仁勋最新主题演讲:“机器人时代“已经到来

6月2日,英伟达联合创始人兼首席执行官黄仁勋在Computex 2024(2024台北国际电脑展)上发表主题演讲,分享了人工智能时代如何助推全球新产业革命。 黄仁勋表示,机器人时代已经到来,将来所有移动的物体都将实现…

[职场] 美术学就业方向和前景 #经验分享#学习方法

美术学就业方向和前景 2011年国务院学位委员会、教育部颁布了新的《学位授予和人才培养学科目录》,艺术学首次从文学门类中独立出来,成为新的第13个学科门类,即艺术学门类。其中,美术学又是艺术学门类下的五个一级学科之一。但是…

微信小程序开发,引用Vant Weapp UI样式,报错“没有找到可以构建的 NPM 包……”

文章目录 1.安装 Vant Weapp 的步骤2.常见问题 1.安装 Vant Weapp 的步骤 npm 安装 Vant Weapp修改 app.json构建 npm 包引入组件验证 npm 安装 Vant Weapp npm i vant/weapp -S --production修改 app.json 将 app.json 中的 “style”: “v2” 去除,小程序的新…

【数据分享】《中国文化文物与旅游统计年鉴》2022

最近老有同学过来询问《中国旅游年鉴》、《中国文化文物统计年鉴》、《中国文化和旅游统计年鉴》、《中国文化文物与旅游统计年鉴》,这四本年年鉴的关系以及怎么获取这四本年鉴。今天就在这里给大家分享一下这四本年鉴的具体情况。 实际上2018年,为适应…

mac无法读取windows分区怎么办 苹果硬盘怎么读取

对于Mac电脑用户但有Windows系统使用需求的,我们可以通过Boot Camp启动转换助理安装Windows分区这个方案来解决,不过因为两个系统的磁盘格式不同,相应的也会产生一些问题,例如无法正常读取windows分区。下面本文就详细说明mac无法…

阿里云(域名解析) certbot 证书配置

1、安装 certbot ubuntu 系统: sudo apt install certbot 2、申请certbot 域名证书,如申请二级域名aa.example.com 的ssl证书,同时需要让 bb.aa.example.com 也可以使用此证书 1、命令:sudo certbot certonly -d “域名” -d “…

【计算机毕业设计】基于SSM++jsp的在线医疗服务系统【源码+lw+部署文档】

包含论文源码的压缩包较大,请私信或者加我的绿色小软件获取 免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者…

【AIGC+CAD】革新建筑、室内设计与建模领域的GenAI产品

一、产品定位 Augrade,一款专为建筑、室内设计和建模行业打造的AI CAD自动化工具。它凭借先进的AI技术,将2D蓝图迅速转化为精确的3D CAD模型,同时提供设计、成本分析的自动化以及全面的文档生成服务。Augrade致力于简化设计流程,确保技术可行性,并促进跨团队、跨工具的协…

怎么把m4a转换成mp3?四种常见的转换方法介绍!

怎么把m4a转换成mp3?在处理m4a音频文件时,我们可能会遇到一系列复杂的问题,首先,考虑到m4a是一种相对较新的音频格式,老旧的设备或软件可能无法准确识别它,这可能导致用户无法在这些设备上播放或编辑m4a文件…

标准发布实施 |《新能源电池工业废水处理技术指南磷酸铁锂电池》

T/ACEF 130-2024《新能源电池工业废水处理技术指南磷酸铁锂电池》欢迎各单位引用执行!有课题也可联合立项! 发布日期:2024年02月04日 实施日期:2024年03月01日 主要起草人:刘愿军、孙冬、丁炜鹏、何小芬…

django 内置 JSON 字段 使用场景

Django 内置的 JSON 字段(JSONField)是在 Django 3.1 版本中引入的,用于处理 JSON 格式的数据。JSONField 允许在数据库表中存储和查询 JSON 数据,并且在与 Python 代码交互时自动转换为合适的 Python 数据类型。以下是一些常见的…

SecureCRT[po破] for Mac SSH终端操作工具[解] 安装教程

文章目录 效果一、准备工作二、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2、 应用程序显示软件图标,表示安装成功 三、输入对应参数1、解决“软件已损坏,无法打开,要移到废纸篓”问题解决步骤…

pdf压缩到指定大小的简单方法

压缩PDF文件是许多人在日常工作和学习中经常需要面对的问题。PDF文件因其跨平台、易阅读的特性而广受欢迎,但有时候文件体积过大,会给传输和存储带来不便。因此,学会如何有效地压缩PDF文件,就显得尤为重要。本文将详细介绍几种常见…

新能源汽车内卷真相

导语:2025年,我国新能源汽车总产能预计可达3661万辆,如此产能如何消化? 文 | 胡安 “这样卷下去不是办法,企业目的是什么?是盈利,为国家作贡献,为社会作贡献。我们应该有大格局&…

04 架构核心技术之分布式消息队列

本课时的主题是分布式消息队列,分布式消息队列的知识结构如下图。 本课时主要介绍以下内容。 同步架构和异步架构的区别。异步架构的主要组成部分:消息生产者、消息消费者、分布式消息队列。异步架构的两种主要模型:点对点模型和发布订阅模型…

FuTalk设计周刊-Vol.041

🔥AI漫谈 热点捕手 1、国产GPTs来了,基于智谱第4代大模型 全自研第四代基座大模型GLM-4,且所有更新迭代的能力全量上线。GLM-4性能相比GLM-3提升60%,逼近GPT-4(11月6日最新版本效果)。而同时推出的GLM-4-…

什么是SIEM

SIEM 解决方案是一种企业级应用程序,可集中和自动化与网络安全相关的操作,该工具通过收集、分析和关联从组织 IT 基础设施中的各种实体聚合的网络事件来帮助应对网络威胁。 与帮助监控和评估组织物理空间中的危险的监视控制台相比,SIEM解决方…

自制植物大战僵尸:HTML5与JavaScript实现的简单游戏

引言 在本文中,我们将一起探索如何使用HTML5和JavaScript来创建一个简单的植物大战僵尸游戏。这不仅是一项有趣的编程挑战,也是学习游戏开发基础的绝佳机会。 什么是植物大战僵尸? 植物大战僵尸是一款流行的策略塔防游戏,玩家需…

在 TypeScript 中使用字典

字典是日常开发中使用频率很高的一种数据结构,在进行名值转换的时候很方便。比如一个任务的执行状态,有“已执行”和“未执行”两种状态,在数据库里存的可能是1和0,在界面上显示的时候就需要转化成其代表的含义。 我们可以定义这…