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 相关文章推荐
浅析return false的正确使用
Nov 04 Javascript
jquery设置按钮停顿3秒不可用
Mar 07 Javascript
JS 使用for循环遍历子节点查找元素
Sep 06 Javascript
jquery.validate使用时遇到的问题
May 25 Javascript
Bootstrap的class样式小结
Dec 01 Javascript
JS+canvas动态绘制饼图的方法示例
Sep 12 Javascript
vue复合组件实现注册表单功能
Nov 06 Javascript
初探js和简单隐藏效果的实例
Nov 23 Javascript
vue.js中npm安装教程图解
Apr 10 Javascript
详解JavaScript添加给定的标签选项
Sep 17 Javascript
webpack打包非模块化js的方法
Oct 24 Javascript
Django+vue跨域问题解决的详细步骤
Jan 20 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/04/18 PHP
php页面缓存方法小结
2015/01/10 PHP
推荐十款免费 WordPress 插件
2015/03/24 PHP
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
Ionic快速安装教程
2016/06/03 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
详解Vscode中使用Eslint终极配置大全
2019/11/08 Javascript
javascript 模块依赖管理的本质深入详解
2020/04/30 Javascript
[01:33:07]VGJ.T vs Newbee Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
详解python3中的真值测试
2018/08/13 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
Python模块的制作方法实例分析
2019/12/21 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
广告设计专业自荐信范文
2013/11/14 职场文书
应聘文员自荐信范文
2014/03/11 职场文书
幼儿园秋游感想
2014/03/12 职场文书
责任心演讲稿
2014/05/14 职场文书
项目经理任命书范本
2014/06/05 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
参加招聘会后的感想
2015/08/10 职场文书
工作自我评价范文
2019/03/21 职场文书