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 相关文章推荐
静态的动态续篇之来点XML
Dec 23 Javascript
Extjs入门之动态加载树代码
Apr 09 Javascript
DD_belatedPNG,IE6下PNG透明解决方案(国外)
Dec 06 Javascript
js带按钮的提示框可供选择示例代码
Sep 17 Javascript
ie 7/8不支持trim的属性的解决方案
May 23 Javascript
JS实现让访问者自助选择网页文字颜色的方法
Feb 24 Javascript
jquery获取css的color值返回RGB的方法
Dec 18 Javascript
jquery插件格式实例分析
Jun 16 Javascript
javascript日期比较方法实例分析
Jun 17 Javascript
微信小程序 开发经验整理
Feb 15 Javascript
Vue组件和Route的生命周期实例详解
Feb 10 Javascript
JS实现打砖块游戏
Feb 14 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/08/27 PHP
php中模拟POST传递数据的两种方法分享
2011/09/16 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
2015/11/24 Javascript
javascript瀑布流布局实现方法详解
2016/02/17 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
2016/07/14 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
关于layui时间回显问题的解决方法
2019/09/24 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
在Django的上下文中设置变量的方法
2015/07/20 Python
Python for Informatics 第11章之正则表达式(二)
2016/04/21 Python
python入门基础之用户输入与模块初认识
2016/11/14 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
Python csv模块使用方法代码实例
2019/08/29 Python
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
入党申请人的自我鉴定
2013/12/01 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
小学班主任事迹材料
2014/12/17 职场文书
女方离婚起诉书
2015/05/18 职场文书
Python之matplotlib绘制折线图
2022/04/13 Python