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 解疑
Nov 11 Javascript
基于JQuery的密码强度验证代码
Mar 01 Javascript
Jquery动态进行图片缩略的原理及实现
Aug 13 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
Feb 17 Javascript
jQuery插件uploadify实现ajax效果的图片上传
Jun 18 Javascript
JavaScript实现的CRC32函数示例
Nov 23 Javascript
自动适应iframe右边的高度
Dec 22 Javascript
Angular2入门教程之模块和组件详解
May 28 Javascript
详解使用nvm管理多版本node的方法
Aug 30 Javascript
详解ajax的data参数错误导致页面崩溃
Apr 30 Javascript
js中switch语句的学习笔记
Mar 25 Javascript
手把手带你搭建一个node cli的方法示例
Aug 07 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程序中的常见漏洞进行攻击(上)
2006/10/09 PHP
php 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
一个PHP的QRcode类与大家分享
2011/11/13 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
Javascript基础教程之比较操作符
2015/01/18 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
JS立即执行函数功能与用法分析
2019/01/15 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
js实现抽奖功能
2020/11/24 Javascript
Flask框架模板渲染操作简单示例
2019/07/31 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
python3中的logging记录日志实现过程及封装成类的操作
2020/05/12 Python
python如何实时获取tcpdump输出
2020/09/16 Python
如何用Python编写一个电子考勤系统
2021/02/08 Python
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
生物专业个人自荐信范文
2013/11/29 职场文书
跟单文员岗位职责
2014/01/03 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
九寨沟导游词
2015/02/02 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
建党伟业观后感
2015/06/01 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
使用Canvas绘制一个游戏人物属性图
2022/03/25 Javascript