当前位置: 首页 > news >正文

knowLedge-VueCLI项目中环境变量的定义与使用

1. env 

1.1简介

        在 Vue CLI 创建的项目中,你可以通过 .env 文件来定义环境变量。Vue CLI 支持多种 .env 文件,它们根据文件名中的前缀来决定何时加载和使用这些环境变量。

        以下是一些常见的 .env 文件及其用途:

  • .env:在任何环境下都会加载的环境变量。
  • .env.local:本地环境(例如,开发环境)特有的环境变量。在构建和运行时,这个文件会被加载,但不会被提交到版本控制系统。
  • .env.development:只在开发环境下加载的环境变量。
  • .env.production:只在生产环境下加载的环境变量。
1.2定义环境变量 

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

VUE_APP_API_URL=https://api.example.com
1.3访问环境变量

   process.env.VUE_APP_API_URL 来访问这个环境变量: 

console.log(process.env.VUE_APP_API_URL); // 输出: https://api.example.com

        请注意,环境变量的名称必须以 VUE_APP_ 开头,这是 Vue CLI 的一个特殊要求,用于确保环境变量被正确注入到客户端代码中。

此外,可以在 .env 文件中定义其他环境变量,例如:

NODE_ENV=development

       这些环境变量不会自动注入到客户端代码中,但它们可以在构建过程中被使用,例如,你可以在 vue.config.js 文件中根据 process.env.NODE_ENV 的值来配置不同的构建选项。

2. process.env  

process.env 是 Node.js 的一个全局对象,用于访问环境变量。在template结构中无法识别,需在js中进行赋值转换

  1. 使用环境变量文件:在前端项目中,你可以创建一个环境变量文件,例如 .env,并在其中定义你的环境变量。然后,你可以使用 dotenv 库(在前端项目中通常需要使用 dotenv-webpack 或类似的库)来加载这个文件。这样,你就可以在前端代码中使用 process.env 对象来访问这些环境变量了。

  2. 使用构建工具的配置选项:许多前端构建工具(如 Webpack、Rollup 等)允许你在构建过程中设置配置选项。你可以使用这些配置选项来定义环境变量,并在前端代码中使用它们。例如,在 Webpack 中,你可以使用 DefinePlugin 来定义全局常量,这些常量可以在前端代码中访问。

  3. 使用服务器端渲染(SSR):如果你的前端项目使用了服务器端渲染,你可以在服务器端设置环境变量,并在渲染过程中将这些变量传递给前端。然后,你可以在前端代码中使用这些变量。

3.  在 .env 文件中,可以定义环境变量为字符串

VUE_APP_BRUMB_SHOW=true

 转换为布尔值进行判断

 this.crumbShow=process.env.VUE_APP_BRUMB_SHOW === "false" ? false : true;;

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 用C#实现连续打印pdf文件
  • 一起学习LeetCode热题100道(40/100)
  • LlamaIndex-milvus-RAG
  • 基于vue框架的yit商城uwd1i(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 【产品经理】竞品分析怎么理解?拆解一下
  • 万字干货!手把手教你如何训练超大规模集群下的大语言模型
  • 【STM32嵌入式系统设计与开发拓展】——15_ADC
  • 重修设计模式-行为型-状态模式
  • Java面试八股之什么是消息队列
  • 智慧景区系统:科技赋能旅游新体验
  • 理解 Go 语言的分组操作
  • JAVA中的ArrayDeque和LinkedList实现Deque,前者不能存NULL结点,后者可以存放NULL。
  • 【upload]-ini-[SUCTF 2019]CheckIn-笔记
  • MySQL 中主键索引的页分裂:深入探讨
  • STM32家族系列的区别
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • “大数据应用场景”之隔壁老王(连载四)
  • 78. Subsets
  • classpath对获取配置文件的影响
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 微信小程序设置上一页数据
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 用element的upload组件实现多图片上传和压缩
  • 转载:[译] 内容加速黑科技趣谈
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 关于Android全面屏虚拟导航栏的适配总结
  • 国内开源镜像站点
  • ​iOS实时查看App运行日志
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #{}和${}的区别是什么 -- java面试
  • #if等命令的学习
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (四)Controller接口控制器详解(三)
  • (自用)网络编程
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .net 连接达梦数据库开发环境部署
  • .net 微服务 服务保护 自动重试 Polly
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NET开源快速、强大、免费的电子表格组件
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @hook扩展分析
  • @Transaction注解失效的几种场景(附有示例代码)
  • [1]从概念到实践:电商智能助手在AI Agent技术驱动下的落地实战案例深度剖析(AI Agent技术打造个性化、智能化的用户助手)
  • [android] 请求码和结果码的作用
  • [C][栈帧]详细讲解
  • [C++打怪升级]--学习总目录
  • [C++随笔录] 红黑树