vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)


Posted in Javascript onJune 04, 2019

在新建好的项目中,一般执行npm run build就是打包了,但此时只能打包到一个环境,不同环境需要配置不同的地址,可以手动更改接口的地址,也可以自行配置命令而不需要每次打包进行地址切换,步骤如下:

文件结构如下图:

vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)

1)在config文件内新建test.env.js文件:

'use strict'
module.exports = {
  NODE_ENV: '"testing"',
  ENV_CONFIG:'"test"'
}

2)修改config内的prod.env.js文件:

'use strict'
  module.exports = {
   NODE_ENV: '"production"',
   ENV_CONFIG:'"prod"'
  }

3)对build中webpack.prod.conf.js做如下修改:

// const env = require('../config/prod.env') //原始代码

或者为

// const env = process.env.NODE_ENV === 'testing' //原始代码
//  ? require('../config/test.env')
//  : require('../config/prod.env')
// console.log(process.env.NODE_ENV);

修改为:

const env = config.build[process.env.env_config+'Env']

4)config中的index.js 文件中build部分代码修改如下:

build: {
  prodEnv: require('./prod.env'),
  testEnv: require('./test.env'),
  // Template for index.html
  index: path.resolve(__dirname, '../dist/index.html'),
 // ····余下的代码就不写了
}

5)确认安装cross-env

npm install cross-env ?save-dev

6)对build文件夹下的build.js的修改:

'use strict'
require('./check-versions')()

// process.env.NODE_ENV = 'production'  //注释掉

const ora = require('ora')
const rm = require('rimraf')
const path = require('path')
const chalk = require('chalk')
const webpack = require('webpack')
const config = require('../config')
const webpackConfig = require('./webpack.prod.conf')

// const spinner = ora('building for production...')  //注释掉
var spinner = ora('building for ' + process.env.NODE_ENV + ' of ' + process.env.env_config+ ' mode...' )

spinner.start()

7)修改package.json文件(在script里面添加):

"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",
 "lint": "eslint --ext .js,.vue src test/unit test/e2e/specs",
 "build": "node build/build.js",
 "build--test": "cross-env NODE_ENV=testing env_config=test node build/build.js",
 "build--prod": "cross-env NODE_ENV=production env_config=prod node build/build.js"
},

8)在common文件下新建env.js,对环境进行判断并切换,内容如下:

/*
 * 配置编译环境和线上环境之间的切换
 * baseUrl: 域名地址
 * routerMode: 路由模式
 */
let baseUrl = '';
let routerMode = 'history';
let DEBUG = false;
let cancleHTTP = [];//取消请求头设置;
//注:下面的baseUrl地址为假地址,只是模拟的,无法调通。
if (process.env.NODE_ENV == 'development') {
  baseUrl = "https://10.248.65.100/GetTravelMethod";
  DEBUG = true;
}else if(process.env.NODE_ENV == 'production'){
  baseUrl = "https://10.248.65.200/GetTravelMethod";
  DEBUG = false;
}else if(process.env.NODE_ENV == 'testing'){
  baseUrl = "https://10.248.65.150/GetTravelMethod";
  DEBUG = false;
}

export{
  baseUrl,
  routerMode,
  DEBUG,
  ROLE,
  cancleHTTP
}

想要test环境下则运行:

npm run build--test

相应的改为production环境则运行:

npm run build--prod

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
两个SUBMIT按钮,如何区分处理
Aug 22 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
Jun 12 Javascript
微信小程序 textarea 组件详解及简单实例
Jan 10 Javascript
js 调用百度分享功能
Feb 27 Javascript
js+html5实现复制文字按钮
Jul 15 Javascript
关于Angularjs中跨域设置白名单问题
Apr 17 Javascript
Js经典案例的实例代码
May 10 Javascript
jQuery AJAX与jQuery事件的分析讲解
Feb 18 jQuery
小程序分页实践之编写可复用分页组件
Jul 18 Javascript
微信小程序自定义模态弹窗组件详解
Dec 24 Javascript
Javascript组合继承方法代码实例解析
Apr 02 Javascript
jQuery zTree如何改变指定节点文本样式
Oct 16 jQuery
JavaScript实现页面中录音功能的方法
Jun 04 #Javascript
vue elementUI 表单校验功能之数组多层嵌套
Jun 04 #Javascript
小程序根据手机机型设置自定义底部导航距离
Jun 04 #Javascript
js回文数的4种判断方法示例
Jun 04 #Javascript
Vue对象赋值视图不更新问题及解决方法
Jun 03 #Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
Jun 03 #Javascript
JavaScript之数组扁平化详解
Jun 03 #Javascript
You might like
php下删除字符串中HTML标签的函数
2008/08/27 PHP
PHP跨时区(UTC时间)应用解决方案
2013/01/11 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
php获取客户端电脑屏幕参数的方法
2015/01/09 PHP
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
PDO::errorCode讲解
2019/01/28 PHP
Webkit的跨域安全问题说明
2011/09/13 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
8个超实用的jQuery功能代码分享
2015/01/08 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
JS实现选择TextArea内文本的方法
2015/08/03 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
JavaScript的设计模式经典之代理模式
2016/02/24 Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
2017/03/04 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
使用axios实现上传图片进度条功能
2017/12/21 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python定时采集摄像头图像上传ftp服务器功能实现
2013/12/23 Python
Python CSV模块使用实例
2015/04/09 Python
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
利用Django-environ如何区分不同环境
2018/08/26 Python
python 操作hive pyhs2方式
2019/12/21 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
html5使用Canvas绘图的使用方法
2017/11/21 HTML / CSS
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
大学学生会竞选演讲稿
2014/04/25 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书