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 call 函数的用法说明
Apr 09 Javascript
jQuery提示效果代码分享
Nov 20 Javascript
js实现背景图片感应鼠标变化的方法
Feb 28 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
Apr 03 Javascript
轻松实现jquery选项卡切换效果
Oct 10 Javascript
javascript 中的事件委托详解
Oct 25 Javascript
jQuery实现限制文本框的输入长度
Jan 11 Javascript
详解Vue2.0里过滤器容易踩到的坑
Jun 01 Javascript
Vuex 单状态库与多模块状态库详解
Dec 11 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
Aug 15 Javascript
highcharts.js数据绑定方式代码实例
Nov 13 Javascript
使用JS实现简易计算器
Jun 14 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多线程抓取网页实现代码
2010/07/22 PHP
php 定界符格式引起的错误
2011/05/24 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
详解Bootstrap四种图片样式
2016/01/04 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
2016/01/08 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
2017/11/15 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
详解angular2.x创建项目入门指令
2018/10/11 Javascript
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
python连接池实现示例程序
2013/11/26 Python
windows系统下Python环境搭建教程
2017/03/28 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
2019/01/30 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
python 实现有道翻译功能
2021/02/26 Python
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
Java面试题及答案
2012/09/08 面试题
linux面试题参考答案(3)
2012/09/13 面试题
实习期自我鉴定
2013/10/11 职场文书
绿色小区申报材料
2014/08/22 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
Node实现搜索框进行模糊查询
2021/06/28 Javascript
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python
Golang获取List列表元素的四种方式
2022/04/20 Golang
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android