根据项目需要,通过vue-cli中的npm run build 打包到不同的环境,例如测试环境,预发布环境,线上环境,根据process.env分别进行接口的调用

vue-cli 中build中build.js

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

// process.env.NODE_ENV = 'production'

var ora = require('ora')
var rm = require('rimraf')
var path = require('path')
var chalk = require('chalk')
var webpack = require('webpack')
var config = require('../config')
var webpackConfig = require('./webpack.prod.conf') var spinner = ora('building for ' + process.env.NODE_ENV + ' of ' + process.env.env_config+ ' mode...' )
spinner.start()
// var spinner = ora('building for production...')
// spinner.start()

build中webpack.prod.conf.js

const env = config.build[process.env.env_config+'Env']
// const env = process.env.NODE_ENV === 'testing'
// ? require('../config/test.env')
// : require('../config/prod.env')

config中的index.js 

module.exports = {
build: {
prodEnv: require('./prod.env'), // 线上环境
sitEnv: require('./sit.env'), // 测试环境
ppeEnv: require('./ppe.env'), // 预发布环境
……

config中 dev.env.js 
开发环境用的是测试接口,通过merge进行拷贝

var merge = require('webpack-merge')
var sitEnv = require('./sit.env') module.exports = merge(sitEnv, {
NODE_ENV: '"development"'
})

在config中新建sit.env.js、ppe.env.js

module.exports = {
NODE_ENV: '"sitEnvironment"',
ENV_CONFIG: '"sit"',
BASE_API: '"http://*****"' // 测试环境地址
}
module.exports = {
NODE_ENV: '"ppeEnvironment"',
ENV_CONFIG: '"ppe"',
BASE_API: '"http://******"' // 预发布环境地址
}

安装cross-env

npm install cross-env -D

package.json

 "scripts": {
   "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"build:prod": "cross-env NODE_ENV=production env_config=prod node build/build.js",
"build:ppe": "cross-env NODE_ENV=ppeEnvironment env_config=ppe node build/build.js",
"build:sit": "cross-env NODE_ENV=sitEnvironment env_config=sit node build/build.js",
   "lint": "eslint --ext .js,.vue src","test": "npm run lint"
},

打包时候我们只需要

npm run build:sit // 测试环境
npm run build:ppe // 预发布环境
npm run build:prod // 线上环境

最新文章

  1. 使用maven搭建ssh框架
  2. Expected one result (or null) to be returned by selectOne(), but found 2
  3. user profile services提示“BAIL: MMS(7116): sql.cpp(8490): 0x80231334 (The sql connection string has unsupported values.)”解决办法
  4. js控制只能输入数字
  5. HttpWebRequest's Timeout and ReadWriteTimeout — What do these mean for the underlying TCP connection?
  6. .NET常用类库知识总结
  7. iOS 开发中的问题
  8. Spark之路 --- Scala IDE Maven配置(使用开源中国的Maven库)和使用
  9. caffe 配置 札记
  10. Android 自动编译、打包生成apk文件 4 - 多渠道批量打包
  11. Linux下可执行程序调试信息的分离及release程序的调试
  12. Tomcat启动中的一些问题
  13. Java中读取txt文件中中文字符时,出现乱码的解决办法
  14. Mapped Statements collection already contains value for ***.***的问题
  15. bzoj4025二分图(线段树分治 并查集)
  16. oracle数据导出以及导入
  17. git merge简介
  18. [AaronYang]那天有个小孩跟我说Js正则
  19. 使用abstract关键字的使用
  20. I/O事件处理模型之Reactor和Proactor 【转】

热门文章

  1. Coolify系列01- 从0到1超详细手把手教你上手Heroku 和 Netlify 的开源替代方案
  2. Java基础学习笔记-常量与变量♪(^∇^*)
  3. 今天试试NuxtJS
  4. SOFAJRaft源码阅读(伍)-初识RheaKV
  5. Autodesk Maya2023 破解版安装教程(小白看了也说understand)
  6. P25_wxss - rpx单位
  7. Ubuntu18.04中用CMake-gui安装OpenCV3.2.0和OpenCV_contrib-3.2.0
  8. 安卓逆向 ARM基础篇
  9. 【KAWAKO】audiotsm-使用python对音频进行变速不变调处理
  10. 取出每个分组的的第一条数据sql