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 相关文章推荐
PJ Blog修改-禁止复制的代码和方法
Oct 25 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
Nov 17 Javascript
js Html结构转字符串形式显示代码
Nov 15 Javascript
文本框获得焦点和失去焦点的判断代码
Mar 18 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
Aug 17 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
Dec 02 Javascript
原生js模拟淘宝购物车项目实战
Nov 18 Javascript
Vue组件库发布到npm详解
Feb 17 Javascript
vue.js与后台数据交互的实例讲解
Aug 08 Javascript
前端面试知识点目录一览
Apr 15 Javascript
JS合并两个数组的3种方法详解
Oct 24 Javascript
js实现双色球效果
Aug 02 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中的Class的几点个人看法
2006/10/09 PHP
DISCUZ 分页代码
2007/01/02 PHP
mysql 字段类型说明
2007/04/27 PHP
php支付宝接口用法分析
2015/01/04 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
2011/07/04 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
不使用浏览器运行javascript代码的方法
2013/07/24 Javascript
js判断页面中是否有指定控件的简单实例
2014/03/04 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
JS实现类似51job上的地区选择效果示例
2016/11/17 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
Python过滤函数filter()使用自定义函数过滤序列实例
2014/08/26 Python
Python中字符串的格式化方法小结
2016/05/03 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
Python2和Python3中@abstractmethod使用方法
2020/02/04 Python
python构造IP报文实例
2020/05/05 Python
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
超市仓管员岗位职责
2014/04/07 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
政风行风整改报告
2014/11/06 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
python正则表达式re.search()的基本使用教程
2021/05/21 Python