• VUE 利用 webpack 给生产环境和发布环境配置不同的接口地址


    VUE 利用 webpack 给生产环境和发布环境配置不同的接口地址

    前言

    我们在开发项目的时候,往往会在同一个局域网进行开发,前后端分离同时进行开发。我们前端调用后端给的接口也是在局域网内部的。但是,当项目推到线上的时候,我们会从真实服务器上获取接口,因此,我们可能在测试接口和真实接口之间频繁切换,让人十分恶心。

    因此,我们有必要想办法解决这个问题。

    本文是 Vue2+VueRouter2+webpack 构建项目实战 
    的后续文章。理解本文内容,需要VUE相关技术基础。

    第一步,分别设置不同的接口地址

    首先,我们分别找到下面的文件:

    1.  
      /config/dev.env.js
    2.  
      /config/prod.env.js
    • 1
    • 2
    • 1
    • 2

    其实,这两个文件就是针对生产环境和发布环境设置不同参数的文件。我们打开dev.en.js文件。代码如下:

    1.  
      var merge = require('webpack-merge')
    2.  
      var prodEnv = require('./prod.env')
    3.  
       
    4.  
      module.exports = merge(prodEnv, {
    5.  
      NODE_ENV: '"development"'
    6.  
      })
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    好,我们在NODE_ENV下面增加一项,代码如下:

    1.  
      var merge = require('webpack-merge')
    2.  
      var prodEnv = require('./prod.env')
    3.  
       
    4.  
      module.exports = merge(prodEnv, {
    5.  
      NODE_ENV: '"development"',
    6.  
      API_ROOT: '"//192.168.1.8/api"'
    7.  
      })
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    然后,我们编辑prod.env.js文件,

    1.  
      module.exports = {
    2.  
      NODE_ENV: '"production"',
    3.  
      API_ROOT: '"//www.baidu.com/api"'
    4.  
      }
    • 1
    • 2
    • 3
    • 4
    • 1
    • 2
    • 3
    • 4

    好。我们分别设定的路径已经有了。下面就是如何调用的问题了。

    第二部,在代码中调用设置好的参数

    以我们之前的演示代码为例。你自己的项目请根据你自己的情况调整。以下文件和代码仅供参考。

    我们打开src/config/api.js文件,将原来开头的代码

    1.  
      // 配置API接口地址
    2.  
      var root = 'https://cnodejs.org/api/v1'
    • 1
    • 2
    • 1
    • 2

    修改为

    1.  
      // 配置API接口地址
    2.  
      var root = process.env.API_ROOT
    • 1
    • 2
    • 1
    • 2

    然后就完成了我们的配置工作。最后,重启项目,就能使新配置的接口地址生效了。

    在经过这样的配置之后,我们在运行

    npm run dev
    • 1
    • 1

    的时候,跑的就是测试接口。而我们运行

    npm run build
    • 1
    • 1

    打包项目的时候,打包的是服务器正式接口,我们就不用调来调去得了。

    祝开心!

  • 相关阅读:
    【luogu P7112】【模板】行列式求值(数学)(线性代数)(高斯消元)
    【luogu P3506】MOT-Monotonicity 2(线段树)
    【luogu AT5160】Numbers on a Circle(贪心)(堆)
    【luogu AT5159】RGB Balls(贪心)
    【luogu P5435】基于值域预处理的快速 GCD(数学)
    Day-20 基础模块1
    F5学习笔记
    Day-19 面向对象06 多继承 MRO C3算法 super()(重点)
    Day-18 面向对象05 约束、异常处理、日志处理
    MPLS(多协议卷标交换)
  • 原文地址:https://www.cnblogs.com/Tohold/p/9400796.html
Copyright © 2020-2023  润新知