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 相关文章推荐
Mozilla中显示textarea中选择的文字
Sep 07 Javascript
javascript for循环设法提高性能
Feb 24 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
Nov 14 Javascript
基于jQuery.Validate验证库知识点的详解
Apr 26 Javascript
js判断字符长度及中英文数字等
Mar 19 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
Jun 03 Javascript
jQuery循环遍历子节点并获取值的方法
Apr 14 Javascript
微信小程序 wxapp地图 map详解
Oct 31 Javascript
vue中使用GraphQL的实例代码
Nov 04 Javascript
vue中使用elementUI组件手动上传图片功能
Dec 13 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
Dec 29 Javascript
vue+ESLint 配置保存 自动格式化代码
Mar 17 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
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
Angular实现form自动布局
2016/01/28 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
Vue.js特性Scoped Slots的浅析
2019/02/20 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
Python中property函数用法实例分析
2018/06/04 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
对python 中class与变量的使用方法详解
2019/06/26 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
HTML5标签小集
2011/08/02 HTML / CSS
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
Java语言的优势
2015/01/10 面试题
保洁主管岗位职责
2013/11/20 职场文书
《赵州桥》教学反思
2014/02/17 职场文书
2019大学竞选班长发言稿
2019/06/27 职场文书
python如何做代码性能分析
2021/04/26 Python
AJAX学习笔记
2021/05/18 Javascript
浅谈Python数学建模之整数规划
2021/06/23 Python
Python anaconda安装库命令详解
2021/10/16 Python
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android
Golang 字符串的常见操作
2022/04/19 Golang
Java 多线程并发FutureTask
2022/06/28 Java/Android
python读取mat文件生成h5文件的实现
2022/07/15 Python