vue项目webpack中Npm传递参数配置不同域名接口


Posted in Javascript onJune 15, 2018

项目开发中,前端在配置后端api域名时很困扰,常常出现:

本地开发环境: api-dev.demo.com

测试环境: api-test.demo.com

线上生产环境: api.demo.com,

这次是在Vue.js项目中打包,教大家个方法:

使用 npm run build -- xxx   ,根据传递参数xxx来判定不同的环境,给出不同的域名配置。

1.项目中/config/dev.env.js修改:

新增:HOST: '"dev"'

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
 
module.exports = merge(prodEnv, {
 NODE_ENV: '"development"',
 HOST: '"dev"'
})

2.项目中/config/prod.env.js修改:

获取传递进来的参数:

'use strict'
let HOST = process.argv.splice(2)[0] || 'prod';
console.log(HOST);
module.exports = {
 NODE_ENV: '"production"',
 HOST: '"'+HOST+'"'
}

3.项目中ajax封装的地方修改:

/**
** 设置API接口域名
**/
 
let apiUrl = '';
// 根据 process.env.HOST 的值判断当前是什么环境
// 命令:npm run build -- test ,process.env.HOST就设置为:'test'
let HOST = process.env.HOST;
HOST = HOST === 'prod' ? '' : '-' + HOST;
 
apiUrl = 'http://api'+HOST+'.demo.com';
axios.defaults.baseURL = apiUrl;

4.最后敲命令:

npm run build -- test   

注意?是2个横杠,后面跟参数,这样 process.env.HOST 就获取到参数 'test' 了,

apiUrl = 'http://api-test.demo.com'

若线上prod发布打包,npm run build -- prod

apiUrl = 'http://api.demo.com'

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
Dec 19 Javascript
javascript 实现简单的table排序及table操作练习
Dec 28 Javascript
JS控制输入框内字符串长度
May 21 Javascript
js判断元素是否隐藏的方法
Jun 09 Javascript
php常见的页面跳转方法汇总
Apr 15 Javascript
js图片翻书效果代码分享
Aug 20 Javascript
JavaScript类型系统之基本数据类型与包装类型
Jan 06 Javascript
jQuery Mobile操作HTML5的常用函数总结
May 17 Javascript
react.js 翻页插件实例代码
Jan 19 Javascript
layui异步加载table表中某一列数据的例子
Sep 16 Javascript
javaScript把其它类型转换为Number类型
Oct 13 Javascript
小程序实现录音上传功能
Nov 22 Javascript
vue和webpack项目构建过程常用的npm命令详解
Jun 15 #Javascript
vue和webpack安装命令详解
Jun 15 #Javascript
Webpack devServer中的 proxy 实现跨域的解决
Jun 15 #Javascript
详解webpack的proxyTable无效的解决方案
Jun 15 #Javascript
vue中axios的封装问题(简易版拦截,get,post)
Jun 15 #Javascript
vue和webpack打包项目相对路径修改的方法
Jun 15 #Javascript
webpack公共组件引用路径简化小技巧
Jun 15 #Javascript
You might like
什么情况下可以不写PHP的闭合标签“?>”
2014/08/28 PHP
PHP时间和日期函数详解
2015/05/08 PHP
PHP实现操作redis的封装类完整实例
2015/11/14 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
你必须知道的Javascript知识点之"this指针"的应用
2013/04/23 Javascript
jQuery中animate动画第二次点击事件没反应
2015/05/07 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
jquery之别踩白块游戏的简单实现
2016/07/25 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
React中使用UMEditor的方法示例
2019/12/27 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
javascript解析json格式的数据方法详解
2020/08/07 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
python实现sublime3的less编译插件示例
2014/04/27 Python
Python检测网络延迟的代码
2018/05/15 Python
解决Django的request.POST获取不到内容的问题
2018/05/28 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
Django如何使用第三方服务发送电子邮件
2019/08/14 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
实习评语
2013/12/16 职场文书
4s店机修工岗位职责
2013/12/20 职场文书
大学生创业计划书的范文
2014/01/07 职场文书
四年大学自我鉴定
2014/02/17 职场文书
分家协议书
2014/04/21 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python
python实现学生信息管理系统(面向对象)
2022/06/05 Python