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 相关文章推荐
Mootools 1.2教程 输入过滤第一部分(数字)
Sep 15 Javascript
JS中令人发指的valueOf方法介绍
Feb 22 Javascript
jquery带下拉菜单和焦点图代码分享
Aug 24 Javascript
JS实现的仿QQ空间图片弹出效果代码
Feb 23 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
Jul 01 Javascript
AngularJs定制样式插入到ueditor中的问题小结
Aug 01 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
Oct 14 Javascript
react.js使用webpack搭配环境的入门教程
Aug 14 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
Nov 26 Javascript
vue使用video.js进行视频播放功能
Jul 18 Javascript
Vue+Koa2+mongoose写一个像素绘板的实现方法
Sep 10 Javascript
Vue 实现拨打电话操作
Nov 16 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中判断一个请求是ajax请求还是普通请求的方法
2011/06/28 PHP
php-fpm配置详解
2014/02/12 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
PHP中echo与print区别点整理
2021/03/09 PHP
javascript 学习之旅 (2)
2009/02/05 Javascript
js如何打印object对象
2015/10/16 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
JS寄快递地址智能解析的实现代码
2020/07/16 Javascript
Python字符串中查找子串小技巧
2015/04/10 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
Python实现Kmeans聚类算法
2020/06/10 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
500行Python代码打造刷脸考勤系统
2019/06/03 Python
详解Python3 pandas.merge用法
2019/09/05 Python
详解使用CSS3的@media来编写响应式的页面
2017/11/01 HTML / CSS
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
单位领导证婚词
2014/01/14 职场文书
安全生产网格化管理实施方案
2014/03/01 职场文书
2014庆六一活动方案
2014/03/02 职场文书
市场推广策划方案
2014/06/02 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
绵山导游词
2015/02/05 职场文书
银行自荐信怎么写
2015/03/05 职场文书
Python实现socket库网络通信套接字
2021/06/04 Python
Python的三个重要函数详解
2022/01/18 Python