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实现表格数据各种搜索功能的方法
Mar 03 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
Aug 17 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
Nov 25 Javascript
jquery实现ajax加载超时提示的方法
Jul 23 Javascript
jquery 判断是否支持Placeholder属性的方法
Feb 07 Javascript
jQuery实现定时隐藏对话框的方法分析
Feb 12 jQuery
使用Angular CLI进行Build(构建)和Serve详解
Mar 24 Javascript
vue组件的写法汇总
Apr 12 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
Sep 14 Javascript
Vue可自定义tab组件用法实例
Oct 24 Javascript
JS实现可视化音频效果的实例代码
Jan 16 Javascript
OpenLayer3自定义测量控件MeasureTool
Sep 28 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实时显示输出
2008/10/02 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
php图片裁剪函数
2018/10/31 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
在jQuery中 常用的选择器介绍
2013/04/16 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
AngularJS学习第二篇 AngularJS依赖注入
2017/02/13 Javascript
基于vue.js实现侧边菜单栏
2017/03/20 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
JS实现常见的查找、排序、去重算法示例
2018/05/21 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
2019/06/19 Javascript
layui实现数据分页功能
2019/07/27 Javascript
js实现div色块碰撞
2020/01/16 Javascript
python类定义的讲解
2013/11/01 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
Python hashlib模块用法实例分析
2018/06/12 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
Notino瑞典:购买香水和美容产品
2019/07/26 全球购物
外贸学院会计专业应届生求职信
2013/11/14 职场文书
经贸专业毕业生求职信
2014/03/23 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
挂靠协议书
2015/01/27 职场文书
西游记读书笔记
2015/06/25 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
Python基础 括号()[]{}的详解
2021/11/07 Python
Nginx的gzip相关介绍
2022/05/11 Servers