vue项目中的环境变量的应用

news2024/12/24 9:04:00

vue项目中的环境变量的应用

在Vue项目中使用环境变量可以方便地在开发、测试、生产等不同环境中进行配置,而无需修改代码。

项目根目录下创建一个.env文件或者.env.[mode]文件,其中mode表示开发、测试、生产等不同的环境,文件名的后缀部分指定了该文件所属的环境.

  • .env.development:表示开发环境下的.env配置文件,该文件用于配置开发环境下的环境变量;
  • .env.test:表示测试环境下的.env配置文件,该文件用于配置测试环境下的环境变量;
  • .env.production:表示生产环境下的.env配置文件,该文件用于配置生产环境下的环境变量。

在这里插入图片描述

process.env.NODE_ENV(自带)

process.env.NODE_ENV是一个用于获取Node.js进程中环境变量的属性。在使用Webpack或者Vue CLI等工具构建应用程序时,该属性通常用于判断当前应用程序的运行环境,以便根据不同的环境执行不同的代码。

在Vue.js中,process.env.NODE_ENV的值会根据环境变量的类型而有所不同。通常有以下三种类型:

  • development:开发环境。
  • production:生产环境。
  • test:测试环境。

在Vue项目中使用环境变量的步骤:

**1.**在项目根目录下.env.development(开发环境)、.env.test(测试环境)、.env.production(生产环境)。在以上三个文件中可以定义项目使用的环境变量,如:

VUE_APP_BASE_API=http://localhost:8080/api
VUE_APP_DEBUG=true

其中以VUE_APP_开头的变量会被自动注入到Vue的全局变量中,可以在代码中通过process.env来访问。如:

console.log(process.env.VUE_APP_BASE_API) // http://localhost:8080/api
console.log(process.env.VUE_APP_DEBUG) // true

**2.**在项目中需要使用环境变量的地方,使用process.env来访问变量即可

例如,在axios中使用环境变量定义API接口地址:

import axios from 'axios'

const api = axios.create({
  baseURL: process.env.VUE_APP_BASE_API
})

export default api

此时,不同环境下的接口地址会自动根据不同的环境变量进行注入。

**3.**在package.json中通过–mode参数指定使用哪个环境的配置文件。

"scripts": {
  "serve": "vue-cli-service serve --mode development",
  "build": "vue-cli-service build --mode production"
}

这样就可以在不同的命令中指定不同的环境配置文件,从而实现不同环境下的配置。

(拓展)配置webpack排除打包时,根据环境变量设置是否排除

在Webpack中,可以使用module.exports来配置打包相关的配置,其中可以通过exclude选项来指定排除某些文件或文件夹。如果需要根据环境变量动态地设置是否排除某些文件或文件夹,可以使用process.env来访问环境变量,然后在Webpack配置文件中根据环境变量的值来设置exclude选项。

以下是一种基于环境变量设置排除选项的实现方法:

**1.**在.env文件中定义EXCLUDE_DIR变量,指定需要排除的文件或文件夹路径,例如:

EXCLUDE_DIR=dist

**2.**在Webpack配置文件中使用process.env来获取设定的环境变量,例如:

const path = require('path')

module.exports = {
  // ...其它配置...

  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: process.env.EXCLUDE_DIR ? new RegExp(path.join(process.env.EXCLUDE_DIR, '/')) : null
        // 排除dist文件夹中的所有文件
      },
      // ...其它规则...
    ]
  }
}

上述配置中,我们使用了process.env.EXCLUDE_DIR来获取环境变量中的EXCLUDE_DIR变量,然后根据其值来决定是否配置exclude选项。如果EXCLUDE_DIR变量存在,则配置排除dist目录,否则不排除任何文件。

当需要排除指定的目录时,只需要在执行Webpack命令时传入EXCLUDE_DIR环境变量即可,例如:

EXCLUDE_DIR=dist webpack

这样,在打包时就会自动将dist目录中的文件排除在打包范围之外。

量即可,例如:

EXCLUDE_DIR=dist webpack

这样,在打包时就会自动将dist目录中的文件排除在打包范围之外。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python的分布式网络爬虫

分布式爬虫其实就是指利用多台计算机分布式地从互联网上采集数据的一种爬虫。它可以把大规模的任务分解成若干小规模的,由多台计算机并行进行处理,大大提高了效率和速度。 分布式爬虫有很多优势:解决单机爬虫效率低的问题,分布式…

【UR3系统升级到CB3.12附带URcap1.05】

【UR3系统升级到CB3.12附带URcap1.05】 1. 前言1.1 Polyscope 3.12更新须知1.2 更新步骤 2. 对 PSU 电压进行控制的步骤2.1 启动机器人电源2.2 启动机器人程序2.3 查看PSU 电压 3. Polyscope 3.12 软件下载3.1 CB 系列机器人3.2 下载软件包URUP 4. CB3 软件安装的指导4.1 连接示…

Kohl‘s百货的EDI需求详解

Kohls是一家美国的连锁百货公司,成立于1962年,总部位于美国威斯康星州的门多西。该公司经营各种商品,包括服装、鞋子、家居用品、电子产品、化妆品等,并拥有超过1,100家门店,分布在美国各地。本文将为大家介绍Kohls的E…

SDK接口远程调试【内网穿透】

文章目录 1.测试环境2.本地配置3. 内网穿透3.1 下载安装cpolar内网穿透3.2 创建隧道 4. 测试公网访问5. 配置固定二级子域名5.1 保留一个二级子域名5.2 配置二级子域名 6. 使用固定二级子域名进行访问 转发自cpolar内网穿透的文章:Java支付宝沙箱环境支付&#xff0…

stable diffusion使用入门

目录 1、stable diffusion简要说明 2、安装stable-diffusion-webui (1)下载地址 (2)执行启动命令 3、Lora模型介绍 4、模型下载 (1)Lora模型使用 (2)底座模型使用 1、stable…

初识开源接口测试工具——Postcat

Postcat 是一个强大的开源、跨平台(Windows、Mac、Linux、Browsers...)的 API 开发测试工具,支持 REST、Websocket 等协议(即将支持 GraphQL、gRPC、TCP、UDP),帮助你加速完成 API 开发和测试工作。 它适合…

OLAP和OLTP

1:OLAP和OLTP对比 数据库系统可以在广义上分为联机事务处理(Online Transaction Process,OLTP)和联机分析处理(Online Analyze Process,OLAP)两种面向不同领域的数据库,OLAP数据库也…

vue-cli的使用

什么是单页面应用程序? ​ 单页面应用程序(Single Page Application)简称SPA。指的是一个web网站中只有唯一的一个html页面,所有的功能与交互都在这个唯一的页面内完成。 什么是vue-cli? ​ vue-cli是Vue.js开发的标准工具。它简化了基于webpack创建工程化的vue项目过程。…

刷题常用算法模板(持续更新)

目录 1、二分查找2、线段树3、树状数组4、差分数组5、前缀树6、并查集7、AC自动机8、Morris遍历9、二叉树非递归遍历10、KMP11、Manacher12、快速选择 bfprt13、滑动窗口14、加强堆15、有序表16、单调栈 1、二分查找 需求:在一个有序数组中,快速查询某一…

chatgpt赋能python:Python中画笔放下:掌握Python图形编程

Python 中画笔放下:掌握 Python 图形编程 Python 是一种高级编程语言,广泛应用于数据处理、人工智能、Web 应用程序等领域。除了这些应用外,Python 还可以用于图形编程,包括绘制 2D 和 3D 图形、创建游戏和交互式应用程序等。在 …

Vue的基本使用

文章目录 Vue简介Vue的使用1.Vue指令2.过滤器3.侦听器4.计算属性 Vue简介 ​ Vue是一套用于构建用户界面的前端框架。 vue的两个特性 (1)数据驱动视图 在使用vue的页面中,vue会监听数据的变化,从而自动重新渲染页面的结构。当页面数据发生变化的时候,会自动重新渲染(数据的…

GUI JFrame实战:六一节,爱她就给她画个哆啦A梦吧

文章目录 前言技术积累容器分类主要APIGraphics图像 绘画方法实战演示1、创建哆啦A梦渲染类2、创建测试方法3、查看渲染结果 写在最后 前言 相信很多使用JAVA高级语言的同学都知道GUI图形用户界面,开发人员可以使用java.awt、javax.swing两个API绘画想要的图形并通…

蓝牙规范系列--基础篇(第一篇)

一、前言 玩过物联网的小伙伴肯定知道ESP32(一款WiFi/BT SoC),那肯定也知道蓝牙这个东西,蓝牙技术最近几年由于蓝牙耳机很火,那蓝牙技术到底是怎样的呢? 蓝牙无线技术是一种短距离的通信系统旨在替换便携式…

c++学习——友元、全局友元函数、友元类

友元 类的主要特点之一是数据隐藏,即类的私有成员无法在类的外部(作用域之外)访问。但是,有时候需要在类的外部访问类的私有成员,怎么办? 解决方法是使用友元函数,友元函数是一种特权函数,c允许这个特权函数访问私有…

python 自动编译VS项目

目录 一、python自动编译项目 1、环境变量 1) CMAKE 2)VS 2、CMAKE 生成VS项目 1) cmake 命令介绍 2)python 调用cmake 命令 3、devenv编译VS项目 1) devenv介绍 2)devenv命令行开关 3) 自动编译VS项目 一、python自动编译项目 …

04 布隆过滤器BloomFilter

是什么 布隆过滤器(英语:Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制数组一系列随机hash算法映射函数,主要用于判断一个元素是否在集合中。通常我们会遇到很多要判断一个元素是否在某个集合中的业务场景&a…

C++ 和机器学习:使用 C++ 执行 ML 任务的简介

C 和机器学习:使用 C 执行 ML 任务的简介 介绍 C 是一种高性能编程语言,非常适合机器学习( ML ) 任务。尽管它在 ML 中可能不像 Python 或 R 那样流行,但它在速度和内存效率方面具有优势。 在本文中,我们将概述使用 C 执行 ML 任务…

“双碳同行者大会”成功举办,绿色家居企业参与其中

2023年5月27日 ,由万科集团创始人、深石集团创始人王石先生创立的碳中和社区品牌“生物圈三号”在深圳大梅沙成功举办了“回归未来双碳同行——生物圈三号双碳同行者大会暨全球运河穿越新书发布会”。 生物圈三号作为社区碳中和综合解决方案平台,为建筑、…

Word控件Spire.Doc 【其他】教程(5):在 Word 中嵌入媒体文件

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

Axios请求失败重刷接口

需求背景 页面接口请求时偶尔会出现 Network Error 异常报错,重新请求就会请求成功 接口没办法捕获异常原因,前端来做一次重刷解决问题 net::ERR_SSL_PROTOCOL_ERRORnet::ERR_CONNECTION_REFUSED 解决思路 记录请求map(以url为唯一标识&…