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 相关文章推荐
JavaScript 小型打飞机游戏实现原理说明
Oct 28 Javascript
jquery无缝向上滚动实现代码
Mar 29 Javascript
浅析LigerUi开发中谨慎载入common.css文件
Jul 09 Javascript
详解JavaScript函数
Dec 01 Javascript
详解vue-Resource(与后端数据交互)
Jan 16 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
May 10 Javascript
5 种JavaScript编码规范
Jan 30 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
Apr 04 Javascript
微信小程序云开发实现数据添加、查询和分页
May 17 Javascript
JS校验与最终登陆界面功能完整示例
Jan 13 Javascript
javascript实现移动端红包雨页面
Jun 23 Javascript
mpvue 项目初始化及实现授权登录的实现方法
Jul 20 Javascript
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加密解密类代码
2011/11/27 PHP
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
PHP网络操作函数汇总
2015/05/18 PHP
PHP引用返回用法示例
2016/05/28 PHP
javascript之对系统的toFixed()方法的修正
2007/05/08 Javascript
PNG背景在不同浏览器下的应用
2009/06/22 Javascript
关于JavaScript中的关联数组分析
2013/04/09 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
JavaScript实现选中文字提示新浪微博分享效果
2017/06/15 Javascript
JS实现的全排列组合算法示例
2017/10/09 Javascript
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
深入浅析JavaScript中的in关键字和for-in循环
2020/04/20 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
[01:04]不如跳舞!DOTA2新英雄玛尔斯的欢乐日常
2019/03/11 DOTA
Python 数据结构之队列的实现
2017/01/22 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
Form表单及django的form表单的补充
2019/07/25 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
NBA欧洲商店(西班牙):NBA Europe Store ES
2019/04/16 全球购物
YSL圣罗兰美妆英国官网:Yves Saint Laurent Beauty UK
2019/08/03 全球购物
应届生妇产科护士求职信
2013/10/27 职场文书
我的梦想演讲稿500字
2014/08/21 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
2015年村党支部工作总结
2015/04/30 职场文书
学校证明范文
2015/06/24 职场文书
趣味运动会标语口号
2015/12/26 职场文书
html粘性页脚的具体使用
2022/01/18 HTML / CSS