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 相关文章推荐
精心挑选的15个jQuery下拉菜单制作教程
Jun 15 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
Apr 15 Javascript
js实现图片点击左右轮播
Jul 08 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
Sep 05 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
Sep 17 Javascript
jQuery实现的分子运动小球碰撞效果
Jan 27 Javascript
JavaScript如何实现组合列表框中元素移动效果
Mar 01 Javascript
jQuery Select下拉框操作小结(推荐)
Jul 22 Javascript
详解Angular 4.x Injector
May 04 Javascript
EasyUI在Panel上动态添加LinkButton按钮
Aug 11 Javascript
详解Vue demo实现商品列表的展示
May 07 Javascript
vue相同路由跳转强制刷新该路由组件操作
Aug 05 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
10条PHP高级技巧[修正版]
2011/08/02 PHP
深入PHP与浏览器缓存的分析
2013/06/03 PHP
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
js代码实现微博导航栏
2015/07/30 PHP
PHP AjaxForm提交图片上传并显示图片源码
2016/11/29 PHP
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
JavaScript中常见陷阱小结
2010/04/27 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
2017/01/11 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
python3 http提交json参数并获取返回值的方法
2018/12/19 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
pygame实现俄罗斯方块游戏(AI篇2)
2019/10/29 Python
Python使用jupyter notebook查看ipynb文件过程解析
2020/06/02 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
家长对孩子的评语
2014/04/18 职场文书
军训口号
2014/06/13 职场文书
中专生自荐信
2014/06/25 职场文书
2014年惩防体系建设工作总结
2014/12/01 职场文书
争先创优个人总结
2015/03/04 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
Redis入门教程详解
2021/08/30 Redis