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 相关文章推荐
JavaScript 编程引入命名空间的方法与代码
Aug 13 Javascript
javascript手工制作悬浮菜单
Feb 12 Javascript
js实现感应鼠标图片透明度变化的方法
Feb 20 Javascript
TypeScript 中接口详解
Jun 19 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
Jan 26 Javascript
AnjularJS中$scope和$rootScope的区别小结
Sep 18 Javascript
JS验证input输入框(字母,数字,符号,中文)
Mar 23 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
Apr 10 Javascript
小程序点击图片实现自动播放视频
May 29 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
Jan 08 Javascript
vue实现的封装全局filter并统一管理操作示例
Feb 02 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
May 20 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
真正的ZIP文件操作类(php)
2007/07/21 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
2010/07/04 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
JS 时间显示效果代码
2009/08/23 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
简述ES6新增关键字let与var的区别
2019/08/23 Javascript
微信小程序 可搜索的地址选择实现详解
2019/08/28 Javascript
利用H5api实现时钟的绘制(javascript)
2020/09/13 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
2020/10/28 Javascript
python简单的函数定义和用法实例
2015/05/07 Python
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
简单易懂的python环境安装教程
2017/07/13 Python
MySQL适配器PyMySQL详解
2017/09/20 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
简单谈谈Python的pycurl模块
2018/04/07 Python
python实现字符串和字典的转换
2018/09/29 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
幼儿园小班家长寄语
2014/04/02 职场文书
Nginx跨域问题解析与解决
2022/08/05 Servers