热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VueCLI(3.X)项目中实现分环境请求API

Vue脚手架升级到3后,生成的项目结构有了一些改变,最近做的一个项目用了新版的脚手架,借此,记录一下如何配置实现分环境配置请求不同的后端service地址。一、项目结构如果你的vu

Vue脚手架升级到3后,生成的项目结构有了一些改变,最近做的一个项目用了新版的脚手架,借此,记录一下如何配置实现分环境配置请求不同的后端service地址。

一、项目结构

如果你的vue-cli版本还是老版本,请先卸载原来的版本(npm uninstall vue-cli -g 或 yarn global remove vue-cli),再安装新版本(npm install -g @vue/cli 或 yarn global add @vue/cli)。

新版本生成的项目结构如下图
相比之下,少了build和config文件夹,因此配置的方式也不一样
《Vue-CLI(3.X)项目中实现分环境请求API》

二、目的

为什么要把项目进行分环境配置呢?这在实际的项目开发中是很有必要的,项目上线(production)前需要有一个经过反复测试的稳定版(verification)本,而开发者需要有另一个环境(dev)进行开发和自测,这样才不会影响到稳定的环境……(这些是我结合自己实际的项目经验总结出来的,或许大家有不同的经历)所以,在前后端分离的项目里,前端和后端都要配置不同的环境。因此,就有这一篇文章,记录一下个人的实践。

三、配置

进入正题,让我们参考官方文档愉快地配置吧~

  • package.json文件
    模式是 Vue CLI 项目中一个重要的概念。比如我们在package.json文件内写一个这样的脚本
    如果我们用命令行’npm run serve’启动项目,就表示当前项目的模式是’qa’。

《Vue-CLI(3.X)项目中实现分环境请求API》

  • .env.XX
    定义好了模式之后,怎么把它和项目环境联系在一起呢?我们需要在项目的根目录下创建名为.env.[mode]的文本文件,在这里我们创建.env.qa文件,那么当项目启动时,在这个文件里声明过的变量就会在qa模式下被载入。因此,我们可以声明当前模式下的NODE_ENV。注意:只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中。除了 VUE_APP_* 变量之外,在你的应用代码中始终可用的还有两个特殊的变量:NODE_ENV & BASE_URL。
  • NODE_ENV
    我们可以通过process.env.NODE_ENV获得到在相应模式下的.env.[mode] 内配置的值;
    在html文件中,参考生成的模板代码,可以这样写↓

《Vue-CLI(3.X)项目中实现分环境请求API》

四、验证

接下来,要验证我们用命令“npm run serve”启动项目,是否能获取到对应模式下的环境配置,直接上图好了。
《Vue-CLI(3.X)项目中实现分环境请求API》
《Vue-CLI(3.X)项目中实现分环境请求API》

我们已经配置成功了,接下来调用api就要用到axios或者其他的工具,按照相应的配置方式进行配置就搞定啦(^-^)V


推荐阅读
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 深入浅出 webpack 系列(二):实现 PostCSS 代码的编译与优化
    在前一篇文章中,我们探讨了如何通过基础配置使 Webpack 完成 ES6 代码的编译。本文将深入讲解如何利用 Webpack 实现 PostCSS 代码的编译与优化,包括配置相关插件和加载器,以提升开发效率和代码质量。我们将详细介绍每个步骤,并提供实用示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本教程详细介绍了如何使用 Spring Boot 创建一个简单的 Hello World 应用程序。适合初学者快速上手。 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
author-avatar
曾那么执着o的厮守
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有