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学习笔记二 之 变量
Dec 15 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
Jul 10 Javascript
js与运算符和或运算符的妙用
Feb 14 Javascript
JS实现可拖曳、可关闭的弹窗效果
Sep 26 Javascript
js操作数组函数实例小结
Dec 10 Javascript
JavaScript获取当前cpu使用率的方法
Dec 15 Javascript
前端面试题及答案整理(二)
Aug 26 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
Aug 29 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
Feb 16 Javascript
JS中Safari浏览器中的Date
Jul 17 Javascript
javaScript实现复选框全选反选事件详解
Nov 20 Javascript
vue-父子组件和ref实例详解
Nov 10 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 实例化类的一点摘记
2008/03/23 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
基础的prototype.js常用函数及其用法
2007/03/10 Javascript
jQuery常见开发技巧详细整理
2013/01/02 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
详解Angular 开发环境搭建
2017/06/22 Javascript
vue.js框架实现表单排序和分页效果
2017/08/09 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
Python实现嵌套列表去重方法示例
2017/12/28 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
python环境路径配置以及命令行运行脚本
2019/04/02 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
详解Python文件修改的两种方式
2019/08/22 Python
Django之路由层的实现
2019/09/09 Python
wxPython色环电阻计算器
2019/11/18 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
详解HTML5表单新增属性
2016/12/21 HTML / CSS
美国价格实惠的在线眼镜网站:Zeelool
2020/12/25 全球购物
Burt’s Bees英国官网:世界领先的天然个人护理品牌
2020/08/17 全球购物
经济管理专业求职信
2014/06/09 职场文书
党支部书记四风问题整改措施
2014/09/24 职场文书
税务会计岗位职责
2015/04/02 职场文书
2016年区委书记抓基层党建工作公开承诺书
2016/03/25 职场文书
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript