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 相关文章推荐
Div自动滚动到末尾的代码
Oct 26 Javascript
javascript温习的一些笔记 基础常用知识小结
Jun 22 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Sep 13 Javascript
jq选项卡鼠标延迟的插件实例
May 13 Javascript
删除条目时弹出的确认对话框
Jun 05 Javascript
解决jquery版本冲突的有效方法
Sep 02 Javascript
JavaScript中原型和原型链详解
Feb 11 Javascript
js仿新浪微博消息发布功能
Feb 17 Javascript
ES6新特性五:Set与Map的数据结构实例分析
Apr 21 Javascript
微信小程序实现tab页面切换功能
Jul 13 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
js中的reduce()函数讲解
Jan 18 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的Socket网络编程入门指引
2015/08/11 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
js查找节点的方法小结
2015/01/13 Javascript
JavaScript的模块化开发框架Sea.js上手指南
2016/05/12 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
2018/01/25 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
微信小程序实现之手势锁功能实例代码
2018/07/19 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
vue实现随机验证码功能的实例代码
2019/04/30 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
简洁的十分钟Python入门教程
2015/04/03 Python
Django验证码的生成与使用示例
2017/05/20 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
Python3几个常见问题的处理方法
2019/02/26 Python
Python 占位符的使用方法详解
2019/07/10 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
详解canvas多边形(蜘蛛图)的画法示例
2018/01/29 HTML / CSS
精细化工应届生求职信
2013/11/17 职场文书
科研先进个人典型材料
2014/01/31 职场文书
志愿者事迹材料
2014/12/26 职场文书
董事长秘书岗位职责
2015/02/13 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
总结Java对象被序列化的两种方法
2021/06/30 Java/Android
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript
python分分钟绘制精美地图海报
2022/02/15 Python
MySQL日期时间函数知识汇总
2022/03/17 MySQL