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实现上传图片前的预览(TX的面试题)
Aug 20 Javascript
JavaScript更改class和id的方法
Oct 10 Javascript
Javascript获取HTML静态页面参数传递值示例
Aug 18 Javascript
jQuery获取标签文本内容和html内容的方法
Mar 27 Javascript
JavaScript获得页面base标签中url的方法
Apr 03 Javascript
使用JQuery实现的分页插件分享
Nov 05 Javascript
jQuery 的 ready()的纯js替代方法
Nov 20 Javascript
js选项卡的制作方法
Jan 23 Javascript
详解JS函数stack size计算方法
Jun 18 Javascript
详解Angular6.0使用路由步骤(共7步)
Jun 29 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
Oct 24 jQuery
详解JavaScript中的数据类型,以及检测数据类型的方法
Sep 17 Javascript
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
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
php数组编码转换示例详解
2014/03/11 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
PHP7基于curl实现的上传图片功能
2018/05/11 PHP
Yii框架模拟组件调用注入示例
2019/11/11 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
JS+XML 省份和城市之间的联动实现代码
2009/10/14 Javascript
jquery 可拖拽的窗体控件实现代码
2010/03/21 Javascript
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
bootstrap table表格使用方法详解
2017/04/26 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
微信小程序之事件交互操作实例分析
2018/12/03 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
浅析Python基础-流程控制
2016/03/18 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
python3.x实现发送邮件功能
2018/05/22 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
python实现文字版扫雷
2020/04/24 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python