• Vue项目如何区分开发还是生产环境切分不同环境接口 (环境识别)


    1.为什么要配置不同的接口地址
    目前,由于我在开发过程中,前端请求访问的是我本机启动的后台服务,此时涉及到跨域(因为端口不一样),所以就在config/index.js文件中配置了代理,如下:
    
    意思就是说凡是以api开头的请求,会帮我转到8089端口去获取数据。所以前端的请求都统一写成'api'+'接口名'
    
    但是在生产环境下,我们不需要在接口前面加api发送请求,所以我们需要判断开发环境和生产环境,然后写相应接口。
    
    2.具体配置
    在项目中找到以下两个文件:
    
    config/dev.env.js  和  config/prod.env.js
    
    2.1  在config/dev.env.js文件中加入一行代码:API_ROOT: ' "//localhost:8080/api" '
           
    
    2.2  在config/prod.env.js文件中加入一行代码: API_ROOT: ' "" '
           
    
    3.在src/main.js文件中配置全局变量(挂在vue原型上)
        process.env是一个全局变量,能够判断当前环境。
    
        所以在axios请求的时候,可以直接用this.baseURL+api :
    .env 默认全局配置文件
    .env.development 开发环境配置文件
    .env.production 生产环境配置文件
     
    文件名为Vue的约定,不可随意更改
     
    配置环境变量格式
     
    VUE_APP_{自定义环境变量名} = {值}
     
    其中“VUE_APP_”是规定的环境变量名前缀,如果变量名不是以此开头,则在程序中不能调用此环境变量
     
     
    例如在.env文件中写入:
    VUE_APP_UserNumber = 12345
    VUE_APP_UserString = "ABCDE"
    XJL = "XJL"
    process是nodeJs的全局变量,其中包含了env的属性,Vue项目启动时会自动读取.env文件中的环境变量
    
     
    即可在Vue.js中可如此调用:
    console.log(process.env.VUE_APP_UserNumber);
    console.log(process.env.VUE_APP_UserString);
    console.log(process.env.XJL);
     
    
    运行后,console输出:
    
    12345
    ABCDE
    undefined
    Vue 源码会根据 process.env.NODE_ENV 决定是否启用生产环境模式,默认情况为开发环境模式。在 webpack 与 Browserify 中都有方法来覆盖此变量,以启用 Vue 的生产环境模式,同时在构建过程中警告语句也会被压缩工具去除。
    
     
    如果是开发模式,Vue会自动读取.env和.env.development两个文件,.env.development文件内定义的环境变量会覆盖.env文件内同名的环境变量;如果是生产环境则是.env.production 文件内定义的环境变量会覆盖.env文件内同名的环境变量.
     
    例如:
    .env文件内容
    VUE_APP_UserNumber = 12345
    VUE_APP_UserString = "ABCDE"
    VUE_APP_From = ".env"
     
    
    .env.development文件内容
    
    VUE_APP_From = ".env.development"
     
    
    .env.production文件内容
    
    VUE_APP_From = ".env.production"
     
    
    在Vue.js中可如此调用:
    
    console.log(process.env.VUE_APP_UserNumber);
    console.log(process.env.VUE_APP_UserString);
    console.log(process.env.From);
     
    
    开发模式下输出:
    
    12345
    ABCDE
    .env.development
     
    
    生产模式下输出:
    
    12345
    ABCDE
    .env.production
  • 相关阅读:
    记录
    Excel 中显示html 数字格式的问题。
    oracle 获取 报错的问题在第几行 Dbms_Utility.Format_Error_Backtrace
    C#9.0新特性详解系列之六:增强的模式匹配
    C# 9.0新特性详解系列之五:记录(record)和with表达式
    C#9.0新特性详解系列之四:顶级程序语句(Top-Level Programs)
    C# 9.0新特性详解系列之三:模块初始化器
    C# 9.0新特性详解系列之二:扩展方法GetEnumerator支持foreach循环
    C# 9.0新特性详解系列之一:只初始化设置器(init only setter)
    C# 9.0 正式版所有新特性概述(最新完善版)
  • 原文地址:https://www.cnblogs.com/xiaoxiaoxun/p/13845191.html
Copyright © 2020-2023  润新知