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 对象比较实现代码
Apr 27 Javascript
jQuery 源码分析笔记(5) jQuery.support
Jun 19 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
Jan 08 Javascript
EASYUI TREEGRID异步加载数据实现方法
Aug 22 Javascript
JavaScript中检测变量是否存在遇到的一些问题
Nov 11 Javascript
jQuery中:disabled选择器用法实例
Jan 04 Javascript
微信小程序 二维码canvas绘制实例详解
Jan 06 Javascript
基于JavaScript实现的折半查找算法示例
Apr 14 Javascript
关于jquery form表单序列化的注意事项详解
Aug 01 jQuery
解析Vue 2.5的Diff算法
Nov 28 Javascript
jQuery实现碰到边缘反弹的动画效果
Feb 24 jQuery
原生js实现购物车
Sep 23 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中把stdClass Object转array的几个方法
2014/05/08 PHP
mac环境中使用brew安装php5.5.15
2014/08/18 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
详解php协程知识点
2018/09/21 PHP
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
2015/01/09 Javascript
Javascript中的几种URL编码方法比较
2015/01/23 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
JavaScrip调试技巧之断点调试
2015/10/22 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
JS中微信小程序自定义底部弹出框
2016/12/22 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
Python描述器descriptor详解
2015/02/03 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
升职自荐信
2013/11/28 职场文书
《手指教学》反思
2014/02/14 职场文书
代理协议书
2014/04/22 职场文书
3分钟演讲稿
2014/04/30 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
二年级数学教学反思
2016/02/16 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL