Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >VUE 利用 webpack 给生产环境和发布环境配置不同的接口地址

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

作者头像
FungLeo
发布于 2022-05-05 13:38:51
发布于 2022-05-05 13:38:51
58300
代码可运行
举报
运行总次数:0
代码可运行

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

前言

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

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/config/dev.env.js
/config/prod.env.js

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var merge = require('webpack-merge')
var prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"'
})

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var merge = require('webpack-merge')
var prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  API_ROOT: '"//192.168.1.8/api"'
})

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = {
  NODE_ENV: '"production"',
  API_ROOT: '"//www.baidu.com/api"'
}

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 配置API接口地址
var root = 'https://cnodejs.org/api/v1'

修改为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 配置API接口地址
var root = process.env.API_ROOT

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm run dev

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm run build

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

祝开心!

本文由 FungLeo 原创,允许转载,但必须保留首发链接。

2017年06月19日更新

上面的方法是没有问题的。但是需要重新运行 npm run dev 重新跑项目才能成功。

另外,为了解决跨域问题以及其他,我现在不推荐采用这种方式调用接口,而是采用webpack自带的代理功能来实现接口的调用。具体方法参见《webpack+vue-cil 配置接口地址代理以及将项目打包到子目录的方法

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Vue 2.0 添加多环境打包配置二(vue init webpack创建的项目,有build,co
用户6256742
2024/06/20
4950
vue.js打包后放到beego项目中,路由的统一设置
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
hotqin888
2019/09/25
1.4K0
vue -- config index.js 配置文件详解
此文章介绍vue-cli脚手架config目录下index.js配置文件 此配置文件是用来定义开发环境和生产环境中所需要的参数 关于注释 当涉及到较复杂的解释我将通过标识的方式(如(1))将解释写到单独的注释模块,请自行查   3.上代码 // see http://vuejs-templates.github.io/webpack for documentation. // path是node.js的路径模块,用来处理路径统一的问题 var path = require('path') module
小蔚
2019/09/11
2.1K0
VUE——配置本地运行指定不同环境
思索
2024/08/16
840
VUE——配置本地运行指定不同环境
vue+element踩坑记-统一管理线上线下接口
需求分析 我们在使用后端提供的接口的过程中,都是先在线下测试结束,没有问题以后才会将代码部署到线上,这样才保证线上的代码是没有问题的。所以如果只有一个接口和一个页面的话,那么是无所谓的, 要不要统一管理都是一样的,但是一旦接口和页面多的话,就会比较麻烦了,所以我们需要统一一个文件进行管理这些接口,这样可以不管是线上还是线下的跑项目,都是可以直接执行的,也不会出现更改过多的问题。 实现思路 我们在config文件里面新建一个管理api的js,这样可以进行统一设置,在我们系统目录下面进行更改dev.en
何处锦绣不灰堆
2020/05/29
4700
vue开发微信商城项目总结之四--本地代理处理跨域问题
之前处理跨域问题是通过jsonp,但是只有开发环境是跨域的,代码打包后上传到服务器便不再跨域,所以ajax在本地做了判断,判断是否是跨域,跨域则走jsonp否则其他正常调用
陌上寒
2019/04/02
4750
前端月入过万必看
项目背景 为了适应h5环境搭建需求,需要动态配置开发,测试,生产三种对应域名及其及打包命令。使用cross-env可以让配置环境更加清晰明了还好管理。 简介 cross-env的作用是不需要全局配置NODE_ENV在scripts脚本中修改NODE_ENV的值从而实现不同环境中proccess.env.NODE_ENV的不同,而config的工作原理就是基于NODE_ENV这个值的,所以推荐两者结合使用。 安装 cross-env
我不是费圆
2024/05/24
770
从0到1 Webpack搭建Vue3开发、生产环境
起步 创建项目目录 mkdir webpack-vue3-demo 初始化 package.json npm init -y 参考文档 安装 webpack webpack-cli webpack-dev-server webpack-merge npm install webpack webpack-cli webpack-dev-server webpack-merge --save-dev 创建配置文件 mkdir build cd build touch webpack.b
peng_tianyu
2022/12/15
1.1K0
从0到1 Webpack搭建Vue3开发、生产环境
webpack系列---webpack介绍&基本使用
2.安装到项目依赖 有时候我们的项目要依赖webpack,可以运行npm i webpack --save-dev
切图仔
2022/09/08
5510
webpack系列---webpack介绍&基本使用
从零开始搭建Vue工程
dist目录存放编译后的资源 src存放源码文件 运行命令 npm init -y
切图仔
2022/09/08
8470
从零开始搭建Vue工程
Webpack 实战入门系列(三):生产配置、样式文件分离及输出清理
现在vue、react很流行,新项目基本用这些新框架,组件化开发确实是趋势,但是他们再怎么发展也离不开构建工具,顶多在webpack等工具上进行再封装。现在vuecli3出来后,我感觉学习成本反而变高了,直观感觉就是文档不清爽,知识零碎。其实回到本源,vuecli3就是基于webpack来的,而且webpack本身非常好学,可以由浅到深,逐步深入。你可以不用学vue、react,只要你会html+css+js就可以用上这个打包工具。很多人不懂webpack是因为一开始就没接触过,然后最先接触的反而是vue或者react框架,结果组件api已经学晕了,突然听说这个其实是webpack的东西,一下就更懵了,所以在不懂原理的情况下,别人的包装让你更加的迷茫。有些人只想会用就行,有些人是有点搞不懂的就想搞明白。那如果你是个前端,想搞清楚本质本源的东西,真的建议你学下webpack。就从这篇入门开始吧,一小时入门webpack
一只图雀
2020/04/13
8040
手把手带你使用webpack4构建一个Vue开发编译环境,并实现代码分割,css代码分离
本篇文章不会细致讲webpack生产编译方面的优化操作,主要点是为了区分开发与生产环境的区别,代码分割分离的操作,所以不建议各位使用本篇文章内配置内容去进行生产编译,生产编译其它优化细节请各位自行另加配置,当然本篇文章配置也不是不能用作生产配置,只是给各位一个建议~
吴佳
2022/09/26
8660
搭建webpack项目框架
随着业务发展和前端人员的增加,搭建一个通用框架以及制定统一规范就成了必然。对于选型这方面,一开始好像就没考虑其他框架,直接选了webpack。webpack的优点就不多说了,可扩展性,强大的npm插件库,说干就干。
jojo
2019/03/12
2.3K0
搭建webpack项目框架
解决vue本地环境跨域请求正常,版本打包后跨域代理不起作用,请求不到数据的方法
问题:在本地使用了proxyTable代理可以正常跨域请求后台数据,打包上传后就无法获得后台的json文件。查看了相关资料可以用nginx进行解决。还可以使用命名环境变量,请求的时候进行判断,话不多说上干货
双面人
2020/04/26
4.1K0
vue-cli脚手架npm相关文件解读(3)webpack.dev.conf.js
系列文章传送门: 1、build/webpack.base.conf.js 2、build/webpack.prod.conf.js 3、build/webpack.dev.conf.js 4、build/utils.js 5、build/vue-loader.conf.js 6、build/build.js 7、build/dev-server.js 8、build/check-versions.js 9、../config/index.js 下面是webpack.dev.conf.js中相关代码和配置
SmileSmith
2018/04/16
9650
1.模拟数据及开发,线上环境分配
什么是easy-mock? easy-mock是一个可视化,并且能快速生成模拟数据的持久化服务,上手简单。为前端开发提供了非常便捷的服务 easy-mock文档
RtyXmd
2018/08/30
5690
1.模拟数据及开发,线上环境分配
vue-cli生成的项目配置开发和生产环境不同的接口
vue-cli生成的项目,vue项目配置了不同开发环境的接口地址,axios.defaults.baseURL如何引用这个地址,这是在我发布项目的时候考虑的,于是想到了 方法一: config下配置文件分别如下: dev.env.js: 'use strict' const merge = require('webpack-merge') const prodEnv = require('./prod.env') module.exports = merge(prodEnv, { NODE_ENV:
蓓蕾心晴
2018/04/12
1.6K0
Vue多环境配置问题2020
安装cross-env npm install cross-env --save-dev 修改package.json文件 "scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "dev--test": "cross-env env_config=test webpack-dev-server --inline --progress --co
程序员不务正业
2020/03/20
9730
CROSS-ENV不同环境配置
项目背景 为了适应h5环境搭建需求,需要动态配置开发,测试,生产三种对应域名及其及打包命令。使用cross-env可以让配置环境更加清晰明了还好管理。 简介 cross-env的作用是不需要全局配置NODE_ENV在scripts脚本中修改NODE_ENV的值从而实现不同环境中proccess.env.NODE_ENV的不同,而config的工作原理就是基于NODE_ENV这个值的,所以推荐两者结合使用。 安装 cross-env
我不是费圆
2020/10/09
4.8K0
vue-cli#2.0 webpack 配置分析
目录结构: ├── README.md ├── build │ ├── build.js │ ├── check-versions.js │ ├── dev-client.js │ ├── dev-server.js │ ├── utils.js │ ├── webpack.base.conf.js │ ├── webpack.dev.conf.js │ └── webpack.prod.conf.js ├── config │ ├── dev.env.js │ ├── index.js │ └── pro
用户1197315
2018/01/22
1.6K0
推荐阅读
相关推荐
Vue 2.0 添加多环境打包配置二(vue init webpack创建的项目,有build,co
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验