实现打包后暴露可修改接口地址文件

本文介绍了如何在VueCLI3项目中,通过创建config.json文件来动态设置接口地址,避免每次打包都需要修改,只需修改config.json即可实时切换接口,提高部署效率。

### vue-cli3 实现打包后暴露可修改接口地址文件

在前后端分离的开发模式中,有时候我们开发好打包的文件在部署完之后,需要去修改获取接口的地址,这个时候就需要前端修改完之后重新打包再部署了,但是如果我们只是需要修改接口地址时,反复的重新打包就太麻烦了,接下来就分享一种简单方法,让大家可以在打包完之后只修改打包好的文件夹下的一个文件,就可以达到修改接口的作用。

1.首先我们在public文件夹下创建一个config.json文件(public文件夹默认不打包),然后在里面写入我们的接口地址,如:

```javascript

{

    "BASE_URL":"http://127.0.0.1:8888"

}

```

2.然后在我们需要使用到axios请求接口的页面或者封装接口请求的管理页面获取基础接口地址,如:

```javascript

//apilist 这是我封装的接口统一管理文件文件

// 先引入axios

import axios from 'axios'

// 定义基础接口地址

var base_url = ''

// 请求存储基础接口地址的json文件,获取保存的接口基础地址

axios.get('./config.json').then(res=>{

    base_url = res.data.BASE_URL // 获取保存的接口基础地址

    }

)

// 然后就可以在下面请求我们的接口地址了,比如我们需要请求一个用户详情的接口,可以这样写:

getUserInfo(id){

    return axios.get(`${base_url/api/userinfo}?userId=${id}`)

}

```

3.这样打包完之后,我们就可以看到打包完的文件夹里面就有config.json这个文件了,我们可以直接使用记事本等工具打开修改里面的基础接口地址,保存之后重新运行我们的项目就可以切换接口地址了  

Vue 项目的开发中,API 接口地址通常会根据项目的配置方式和打包需求,存在于不同的配置文件或代码文件中。以下是常见的几种情况及其对应文件,可用于查找项目中接口地址的位置: ### 配置代理的文件中查看接口地址 在开发环境中,前后端接口调试通常会通过代理进行跨域请求,代理的配置一般在 `config/index.js` 文件中。其中,`proxyTable` 字段用于定义代理规则,接口地址通常与 `target` 属性相关。例如: ```javascript // config/index.js dev: { proxyTable: { '/api': { target: 'http://backend.server.ip:port', // 接口目标地址 changeOrigin: true, pathRewrite: { '^/api': '' } } } } ``` 如果需要查看该代理地址,可以在页面中引入配置文件并打印相关值: ```javascript import API_CONFIG from "../../../config/index.js"; console.log("api==", API_CONFIG.dev.proxyTable['/api'].target); // 输出 http://backend.server.ip:port ``` 通过这种方式,可以快速定位开发环境中的接口地址[^1]。 ### 动态配置文件中查看接口地址 在生产环境中,为了方便运维人员动态修改接口地址,通常会将 API 地址配置在 `/static` 目录下的 `config.js` 文件中,并通过全局变量 `window.g` 暴露给项目使用。例如: ```javascript // static/config.js window.g = { BASE_URL: "http://backend.server.ip:port" }; ``` 该文件在 `index.html` 中被引入: ```html <script src="/static/config.js"></script> ``` 在接口拦截器或请求工具中,API 地址会被替换为 `window.g.BASE_URL`。例如: ```javascript // 请求拦截器示例 axios.defaults.baseURL = window.g.BASE_URL; ``` 运行项目后,可以通过以下方式验证地址是否正确: ```javascript console.log(window.g.BASE_URL); // 输出 http://backend.server.ip:port ``` 这种方式允许运维人员在不重新打包项目的情况下,直接修改 `config.js` 文件中的地址[^2]。 ### 全局变量文件中查看接口地址 部分项目会在 `src` 目录下新建一个全局变量文件,例如 `interface/index.js`,用于统一管理 API 地址。例如: ```javascript // src/interface/index.js let commonUrl = "http://backend.server.ip:port"; let baseUrl = { commonUrl }; export default baseUrl; ``` 在接口请求时,引入该文件并使用对应的地址: ```javascript import baseUrl from "@/interface"; axios.get(`${baseUrl.commonUrl}/api/login`); ``` 通过这种方式,可以在 `interface/index.js` 文件中直接查看 API 地址[^3]。 ### 区分开发环境和生产环境的配置 为了区分开发环境和生产环境的 API 地址,一些项目会分别配置不同的地址。开发环境的代理地址通常在 `config/index.js` 中定义,而生产环境的地址则可能通过 `/static/config.js` 或全局变量文件进行管理。例如: ```javascript // 开发环境(config/index.js) proxyTable: { '/api': { target: 'http://dev.backend.server.ip:port', changeOrigin: true } } // 生产环境(static/config.js) window.g = { BASE_URL: "http://prod.backend.server.ip:port" }; ``` 通过这种方式,可以在不同环境下使用不同的 API 地址,确保前后端接口请求的正确性[^5]。 ### 总结 API 接口地址通常可能存在于以下文件中: 1. **代理配置文件**:`config/index.js`,查看 `proxyTable` 中的 `target` 值。 2. **动态配置文件**:`static/config.js`,查看 `window.g.BASE_URL` 的值。 3. **全局变量文件**:`src/interface/index.js`,查看 `commonUrl` 的值。 4. **区分环境的配置**:开发环境查看 `config/index.js`,生产环境查看 `static/config.js`。 通过检查这些文件,可以快速定位项目中的 API 接口地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值