vue项目根据不同环境动态配置接口请求ip及全局变量(vue环境变量配置)

这篇具有很好参考价值的文章主要介绍了vue项目根据不同环境动态配置接口请求ip及全局变量(vue环境变量配置)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在项目的开发过程中,我们常常会遇到根据不同的环境需要切换不同的ip的问题,例如在项目部署到测试服时需要将接口请求ip替换成测试服的ip,部署到正式服时又需要将接口请求ip替换成正式服对应的ip,有些公司还有预发环境等,这样在每次部署不同环境的项目前都需要先手动切换ip,这样既繁琐又易出错。本篇文章就记录了本人在解决这一问题的详细步骤。

配置步骤

1.在项目的根目录下新建 .env.xxx 文件

vue脚手架创建的项目默认目录结构如下:

vue项目如何配置不同域名访问不同ip地址,vue.js,前端,javascript

根据环境个数在根目录下新增 .env.xxx 文件

vue项目如何配置不同域名访问不同ip地址,vue.js,前端,javascript

 如上,三个 .env.xxx 文件后缀名(文件后缀名可自定义)为development、production、test,可分别对应为开发环境、生产环境和测试环境。如果还需要预发环境,则还可继续新增一个 .env.pre 文件代表预发环境。

每个环境都会加载的变量

如果还需要设置每个环境都需要加载的变量,则可以添加 .env 文件,如果没有,则可以不建此文件。(即每个环境对应变量的变量值都是一样的时候,则可以将变量定义在公用的.env文件中,而对应每个环境的 .env.xxx文件中则不需要再重复定义此变量)

vue项目如何配置不同域名访问不同ip地址,vue.js,前端,javascript

2.在对应环境的 .env.xxx 文件中添加变量

在.env.xxx 文件中只有 NODE_ENV,BASE_URL 和以 VUE_APP_ 开头的变量会通过 webpack.DefinePlugin 静态地嵌入到客户端侧的代码中。

  • NODE_ENV : 主要用于标识当前的环境
  • BASE_URL: vue.config.js 中的 publicPath 选项相符,即你的应用会部署到的基础路径
  • VUE_APP_* : 自定义变量

.env.development(开发环境) 文件代码

vue项目如何配置不同域名访问不同ip地址,vue.js,前端,javascript

.env.production(生产环境) 文件代码

vue项目如何配置不同域名访问不同ip地址,vue.js,前端,javascript

.env.test(测试环境) 文件代码

vue项目如何配置不同域名访问不同ip地址,vue.js,前端,javascript

.env(所有环境都会加载的变量) 文件代码

vue项目如何配置不同域名访问不同ip地址,vue.js,前端,javascript

3.package.json 文件配置对应环境打包命令

vue脚手架创建的项目默认配置如下:

vue项目如何配置不同域名访问不同ip地址,vue.js,前端,javascript

  • vue-cli-service serve:配置默认是使用的development对应环境的环境变量(当然也可以自己手动指定对应的环境,在现有命令后面加上 --mode development即可,完整命令:vue-cli-service serve --mode development), 也就是说执行npm run serve,会将.env.development文件和.env文件里面的变量加入项目代码中
  • vue-cli-service build:配置默认是使用的production对应环境的环境变量, 也就是说执行npm run build,会将.env.production文件和.env文件里面的变量加入项目代码中

添加测试服打包命令(运行命令:npm run build:test)

在package.json文件中的 scripts 对象中添加如下代码:

vue项目如何配置不同域名访问不同ip地址,vue.js,前端,javascript

 vue-cli-service build --mode test :命令中的test对应的是 .env.xxx文件中设置NODE_ENV变量的值,如果没有设置NODE_ENV变量,则默认以 .env.xxx 文件的后缀名为准,如果也找不到.env.test文件,则打包报错,

如果想在本地直接使用测试服的环境变量也可以在package.json 中再配置项目启动命令,配置如下(运行命令:npm run serve:test):

vue项目如何配置不同域名访问不同ip地址,vue.js,前端,javascript

 或者直接修改现有serve 的运行模式: 

配置完成后如何在项目中使用

  • 在请求js文件中,可用于替换请求接口的ip,达到根据不同的环境请求不同的ip的效果
  • 在vue文件中,可当作全局变量使用,类似于在vue中定义的全局常量
  • 在vue.config.js文件中使用,可用于判断当前的打包环境,根据不同的环境进行一些打包优化配置
  • vue-cli的index.html中使用,可用于加载公司统一定义的一些js、css等头部文件(需根据各个环境引入各自的js和css)

1.请求接口的js文件/vue页面中使用

    语法:process.env.变量名称

vue项目如何配置不同域名访问不同ip地址,vue.js,前端,javascript

vue项目如何配置不同域名访问不同ip地址,vue.js,前端,javascript

2.vue.config.js中根据环境变量判断打包环境,进行打包优化配置:

vue项目如何配置不同域名访问不同ip地址,vue.js,前端,javascript

3.在vue-cli的index.html中使用

语法:<%= 变量名 %> html中根据不同环境,加载不同css/js文件

//css文件
<link rel="stylesheet" href="<%= VUE_APP_API %>/header/head.css" rel="external nofollow" >
//js文件
<script type="text/javascript" src="<%= VUE_APP_API %>/footer.js"></script>

html中根据不同环境,加载不同本地js代码

<% if (process.env.NODE_ENV === 'production' ) { %>
    <script>
      window.test = 'xxxx'
    </script>
<% } %>

vue项目如何配置不同域名访问不同ip地址,vue.js,前端,javascript文章来源地址https://www.toymoban.com/news/detail-783317.html

到了这里,关于vue项目根据不同环境动态配置接口请求ip及全局变量(vue环境变量配置)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 前端之vue 根据菜单自动生成路由(动态配置前端路由)

    前端之vue 根据菜单自动生成路由(动态配置前端路由)

    在需要权限控制的页面,往往存在根据用户来显示菜单的情况,单独根据用户类型判断显然不是很好,如果后面用户类型发生变化,项目修改维护可能就会比较麻烦,所以比较好的做法是根据后端返回的菜单动态生成页面路由,以达到完全权限控制的目的,并且若权限发生变

    2024年04月10日
    浏览(16)
  • Vite+Vue根据环境配置Websocket地址

    上回说到,利用vite加载不同mode下的配置文件,可以实现不同运行环境下的参数配置。在前端应用中经常使用到Websocket,其地址同样可以在.env中间中配置。 vite.config.ts代码的执行是在createApp之前,不可以在vite.config.ts中使用例如 pinia 、 router 等组件。可以使用import.meta.env获取

    2024年02月19日
    浏览(8)
  • nginx中根据请求参数的不同将请求转发到不同的服务(map模块的使用)

    需求 :有一个文本翻译的接口,需要根据原语、目标语、以及apikey的不同转发到不同的服务; 实现 :可以使用Nginx的map模块来实现基于请求参数的转发。具体实现步骤如下: 在Nginx配置文件中定义一个map块,用于根基请求参数判断对应的转发地址, $arg_apikey 是获取请求参数

    2024年02月16日
    浏览(11)
  • Nginx - 根据请求参数路由进行不同的响应

    Nginx - 根据请求参数路由进行不同的响应

    业务有一个统一入口 需要对不同的接口实现流控 最常见的是通过location进行路径匹配的时候,但是 无法使用正则表达一起捕获这个路径和querstring的参数 。如果我们想通过URL里面的Query String进行不同的rewrite,应该如何处理呢?答案就是$arg变量。 Nginx里面 $query_string 与 $args

    2024年02月09日
    浏览(11)
  • postcss-pxtorem适配插件动态配置rootValue(根据文件路径名称,动态改变vue.config里配置的值)

    postcss-pxtorem适配插件动态配置rootValue(根据文件路径名称,动态改变vue.config里配置的值)

    项目背景:一个项目里有两个分辨率的设计稿(1920和2400),不能拆开来打包 参考: 是参考vant插件:移动端Vant组件库rem适配下大小异常的解决方案:https://github.com/youzan/vant/issues/1181 说明: 因为 vue.config.js 文件无法获取window对象,所以任何外部参数都加不进来,甚至无法打印

    2024年02月14日
    浏览(12)
  • Uniapp根据权限(角色)不同动态展示底部tabbar

    Uniapp根据权限(角色)不同动态展示底部tabbar

    比如绑定openId展示的tabbar为:首页、巡检、工单 未绑定openId展示的tabbar为:在线报修、我的报修 首页配置pages.json中的tabbar: 这里只用配置pagePath就可以了~ 具体代码如下: 创建一个自定义的tabbar文件: 具体代码如下: 注意:pagePath的最前面要   加  / 创建index.js文件配置

    2024年04月26日
    浏览(22)
  • 本地开发环境请求服务器接口跨域的问题(vue的问题)

    本地开发环境请求服务器接口跨域的问题(vue的问题)

    上面的这个报错大家都不会陌生,报错是说没有访问权限(跨域问题)。本地开发项目请求服务器接口的时候,因为客户端的同源策略,导致了跨域的问题。下面先演示一个没有配置允许本地跨域的的情况: 可以看到,此时我们点击获取数据,浏览器提示我们跨域了。所以我

    2024年01月23日
    浏览(11)
  • vue-cli4 配置不同开发环境打包命令

    为什么会需要配置多种环境变量? 在一个产品的开发过程中,一般来说都是会经历这么一个过程: 本地开发 → 测试版部署 → 测试 → 预上线 → 正式上线 。对应的每一个环节中的服务器地址,接口地址...都会不一样。那么我们需要怎么去处理这种情况。 #1. 创建文件 在

    2024年02月16日
    浏览(48)
  • uni-app动态tabBar,根据不同用户展示不同的tabBar

    uni-app动态tabBar,根据不同用户展示不同的tabBar

    因为我们用的是uni-app框架开发,所以在创建项目的时候直接创建uni-ui的项目即可,这个项目模板中自带了uni的一些好用的组件和api。 起初我想着这个效果不难实现,因为官方也有api可以直接使用,所以我最开始尝试就是使用uni的api完成,也就是这个 :uni.setTabBarItem(options) 我

    2024年02月09日
    浏览(16)
  • Vue项目打包到服务器后请求接口报错404

    Vue项目打包到服务器后请求接口报错404

    背景 :前端Vue项目打包后部署在服务器上,而后端接口在另外一台服务器。本地生产环境运行时因为在Vue中配置了proxy代理,所以项目运行正常。但是在服务器开发环境中,一直报错404。 原因 :在开发环境中设置了proxy代理后,打包时proxy代理就会失效,因为proxy代理并不会

    2024年02月09日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包