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 相关文章推荐
js里怎么取select标签里的值并修改
Dec 10 Javascript
ExtJS自定义主题(theme)样式详解
Nov 18 Javascript
js实现带圆角的多级下拉菜单效果
Aug 28 Javascript
JavaScript前端开发之实现二进制读写操作
Nov 04 Javascript
JS面向对象编程详解
Mar 06 Javascript
JQuery validate插件验证用户注册信息
May 11 Javascript
Bootstrap 模态框(Modal)插件代码解析
Dec 21 Javascript
防止页面url缓存中ajax中post请求的处理方法
Oct 10 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
Dec 13 Javascript
Vue验证码60秒倒计时功能简单实例代码
Jun 22 Javascript
vue语法自动转typescript(解放双手)
Sep 18 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
Jul 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
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
PHP 线程安全与非线程安全版本的区别深入解析
2013/08/06 PHP
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
PHP通过curl获取接口URL的数据方法
2018/05/31 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
D3.js实现直方图的方法详解
2016/09/25 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
2018/05/26 jQuery
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
[51:44]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第二场
2018/04/04 DOTA
python 中文乱码问题深入分析
2011/03/13 Python
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
python 实时遍历日志文件
2016/04/12 Python
Python星号*与**用法分析
2018/02/02 Python
python读写csv文件实例代码
2019/07/05 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
泰国网上购物:Shopee泰国
2018/09/14 全球购物
工作的心得体会
2013/12/31 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
《给予树》教学反思
2016/03/03 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
Navicat连接MySQL错误描述分析
2021/06/02 MySQL