• 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
  • 相关阅读:
    应用C#和SQLCLR编写SQL Server用户定义函数
    警告:隐式声明与内建函数'exit'不兼容解决方案
    GDB详解
    Linux GCC常用命令
    WebBrowser处理AJAX生成的网页内容!
    IOS开发之网络编程开源类 Reachability应用
    NSString和NSMutableString常用方法+NSArray常用代码 (转)
    hosts立即生效的方法
    spring.net xml 命名空间
    c#操作access,update语句不执行的解决办法
  • 原文地址:https://www.cnblogs.com/xiaoxiaoxun/p/13845191.html
Copyright © 2020-2023  润新知