vue项目中运用webpack动态配置打包多种环境域名的方法


Posted in Javascript onJune 24, 2019

在如今前后端分离,各种框架盛行的前端界,对项目的打包要求也越来越复杂,本人分享一个vue项目里,根据命令行输入不同的命令,打包出不同环境域名的方法。(欢迎纠错,谢谢。)

1. 安装插件 cross-env,npm install cross-env --save -dev,用于配置命令行输入命令。

2. 修改package.json里的script命令:

配置了test(测试),ready(预发布),prod(正式)三种环境,npm run build 默认设置成 npm run build:prod,也可以根据自己需求,配置更多的命令,参数自定。网上看到有人去修改NODE_ENV这个默认的参数,配置文件里有很多地方都引用了这个参数。本人认为这个默认参数可以不改,自己重新增加一个参数就行(这里增加一个BUILD_ENV参数)。

"scripts": {
  "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
  "start": "npm run dev",
  "unit": "jest --config test/unit/jest.conf.js --coverage",
  "e2e": "node test/e2e/runner.js",
  "test": "npm run unit && npm run e2e",
  "build": "npm run build:prod",
  "build:test": "cross-env NODE_ENV=production BUILD_ENV=test node build/build.js",
  "build:ready": "cross-env NODE_ENV=production BUILD_ENV=ready node build/build.js",
  "build:prod": "cross-env NODE_ENV=production BUILD_ENV=prod node build/build.js"
 },

3. 修改config目录下的prod.env.js

里面的默认配置是这样:只有一个NODE_ENV

'use strict'
module.exports = {
 NODE_ENV: '"production"', 
}

修改后的配置:

'use strict'
const BUILD_ENV = process.env.BUILD_ENV
let baseUrl 
switch (BUILD_ENV) {
 case 'test':
  baseUrl = 'api.test.com'
  break; 
 case 'ready':
  baseUrl = 'api.ready.com'
 break;
 case 'prod':
  baseUrl = 'api.prod.com'
 break;
}
module.exports = {
 NODE_ENV: '"production"', 
 BUILD_ENV: '"' + BUILD_ENV + '"',
 baseUrl: '"' + baseUrl + '"',
}

修改的配置增加了BUILD_ENV和baseUrl两个属性, 属性值记得拼接双引号 ,process.env.BUILD_ENV就是命令行里输入的BUILD_ENV的值,再根据BUILD_ENV进行相应的判断。在项目里,就可以通过process.env拿到prod.env.js暴露出去的3个属性。比如接口文件,就需要process.env.baseUrl来动态修改不同环境域名。

总结

以上所述是小编给大家介绍的vue项目中运用webpack动态配置打包多种环境域名的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
JavaScript中使用构造函数实现继承的代码
Aug 12 Javascript
js实现仿京东2级菜单效果(带延时功能)
Aug 27 Javascript
详解JavaScript的流程控制语句
Nov 30 Javascript
如何在Angular.JS中接收并下载PDF
Nov 26 Javascript
javascript删除html标签函数cIsHTML
Jan 09 Javascript
jQuery is not defined 错误原因与解决方法小结
Mar 19 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
Apr 20 Javascript
Vue程序调试的方法
Jun 17 Javascript
django js 实现表格动态标序号的实例代码
Jul 12 Javascript
Vue前端项目部署IIS的实现
Jan 06 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
Jul 20 Javascript
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
Jan 13 Vue.js
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
Jun 24 #Javascript
JavaScript学习教程之cookie与webstorage
Jun 23 #Javascript
React组件对子组件children进行加强的方法
Jun 23 #Javascript
vue使用websocket的方法实例分析
Jun 22 #Javascript
JS实现简单的文字无缝上下滚动功能示例
Jun 22 #Javascript
js图片查看器插件用法示例
Jun 22 #Javascript
JS实现继承的几种常用方式示例
Jun 22 #Javascript
You might like
检测codeigniter脚本消耗内存情况的方法
2015/03/21 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
JS实现的表格行上下移动操作示例
2016/08/03 Javascript
Node.js的基本知识简单汇总
2016/09/19 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
Vue实现todo应用的示例
2021/02/20 Vue.js
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
Python科学画图代码分享
2017/11/29 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
python命令行参数用法实例分析
2019/06/25 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
Hunkemöller西班牙:欧洲最大的内衣连锁店
2018/08/15 全球购物
难忘的一天教学反思
2014/04/30 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
上班迟到检讨书范文300字
2014/11/02 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
担保贷款承诺书
2015/04/30 职场文书
2015教师节通讯稿
2015/07/20 职场文书