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 相关文章推荐
跨域表单提交状态的变相判断代码
Nov 12 Javascript
javascript淡入淡出效果的实现思路
Mar 31 Javascript
jquery 操作DOM的基本用法分享
Apr 05 Javascript
javascript的offset、client、scroll使用方法详解
Dec 25 Javascript
checkbox全选所涉及到的知识点介绍
Dec 31 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
Aug 11 Javascript
jQuery中removeData()方法用法实例
Dec 27 Javascript
AngularJS实现表单手动验证和表单自动验证
Dec 09 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
Dec 08 Javascript
基于js实现二级下拉联动
Dec 17 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
Feb 03 Javascript
在Vue中使用mockjs代码实例
Nov 25 Vue.js
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数据库开发知多少
2006/10/09 PHP
php异常处理使用示例
2014/02/25 PHP
PHP资源管理框架Assetic简介
2014/06/12 PHP
Yii框架中memcache用法实例
2014/12/03 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
比较搞笑的js陷阱题
2010/02/07 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
node.js中的fs.fchown方法使用说明
2014/12/16 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
2015/01/12 Javascript
javascript学习总结之js使用技巧
2015/09/02 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
用 js 的 selection range 操作选择区域内容和图片
2017/04/18 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
axios中cookie跨域及相关配置示例详解
2017/12/20 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
js图片无缝滚动插件使用详解
2020/05/26 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
python决策树之CART分类回归树详解
2017/12/20 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
wxPython实现文本框基础组件
2019/11/18 Python
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
C语言笔试集
2012/07/24 面试题
2014年两会学习心得范例
2014/03/17 职场文书
父母对孩子的寄语
2014/04/09 职场文书
会计求职自荐信范文
2015/03/04 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书