vue不同环境下的配置

摘要:
需求有时候,项目会有很多环境,比如最常用会有一下环境,develop:本地开发环境alpha:测试/预发布环境production:正式/生产环境不同环境下,打包、部署和api的调用都是不同的。所以我们建立多个配置文件比如.env.alphaser,内容大致如下这些变量,是整个项目都可以访问全局变量NODE_ENV=developmentBASE_URL=/VUE_APP_ENV=developmentVUE_APP_ENV_CHN=前端环境:本地开发环境。后端环境:测试服环境VUE_APP_SERVER=https://t-12368-h5.aegis-info.com/casservice/web/v1/比如.env.production,内容大致如下NODE_ENV=productionBASE_URL=/caspage/VUE_APP_ENV=productionVUE_APP_ENV_CHN=前端环境:正式环境。

需求
有时候,项目会有很多环境,比如最常用会有一下环境,
develop:本地开发环境
alpha:测试/预发布环境
production:正式/生产环境
不同环境下,打包、部署和api的调用都是不同的。
如果每次都频繁修改代码,明显是不理智的
那么有没有类似于java的springBoot可以按照命令调用不同配置文件启动呢?
vue不同环境下的配置第1张

java -jar -Dspring.profiles.active=test demo-0.0.1-SNAPSHOT.jar

答案是肯定的。

使用如下
在package.json新增命令脚本

"scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "serve:alpha": "vue-cli-service serve --mode alphaser",
    "build:alpha": "vue-cli-service build --mode alpha"},

在项目根目录下,新增配置文件
--mode alphaser意思为指定环境模式为alphaser,会调用.env.alphaser文件。默认不指定则为development。所以我们建立多个配置文件
vue不同环境下的配置第2张

比如.env.alphaser,内容大致如下
这些变量,是整个项目都可以访问全局变量

NODE_ENV =development
BASE_URL = /VUE_APP_ENV =development
VUE_APP_ENV_CHN =前端环境:本地开发环境。 后端环境:测试服环境
VUE_APP_SERVER = https://t-12368-h5.aegis-info.com/casservice/web/v1/

比如.env.production,内容大致如下

NODE_ENV =production
BASE_URL = /caspage/VUE_APP_ENV =production
VUE_APP_ENV_CHN =前端环境:正式环境。 后端环境:正式服环境
VUE_APP_SERVER = https://shandong-12368.aegis-info.com/casservice

然后对vue项目做如下改造
vue.config.js
动态配置打包的路径和目录(即项目内所有的请求链接地址都是publicPath)
本地开发代理地址proxy

module.exports ={
  publicPath: process.env.BASE_URL,
  devServer: {
    proxy: process.env.VUE_APP_SERVER
  }
};

如果项目里使用aixos,那么还要对其配置

//本地会自动走vue.config.js里的代理地址,不需要配置baseUrl。否则代理会失效
if (process.env.VUE_APP_ENV !== 'development') {
  axios.defaults.baseURL =process.env.VUE_APP_SERVER;
}

如果你的路由采用history模式
配置路由,因为服务器可能不一定将你的项目放在根目录下

const router = newVueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

试试吧

[本地开发启动]

使用本地服务接口:npm run serve
使用测试服务接口:npm run serve:alpha

[线上打包部署]

使用测试服务接口:npm run build:alpha
使用正式服务接口:npm run build
运维
如果你使用的是teamcity自动化部署或者手动部署来管理项目,你可能要做如下适配(修改编译的命令)
vue不同环境下的配置第3张

vue不同环境下的配置第4张

vue的后端部署
阅读本文

免责声明:文章转载自《vue不同环境下的配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VREP中的力触觉设备接口(CHAI3D)Windows下复制文件命令xcopy下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

前端 vue表格数据导出Excel 文件实现

实现思路 使用json2csv将后台json数据转化为csv格式数据 采用创建Blob(二进制大对象)的方式来存放缓存数据;生成下载链接; 创建一个a标签,设置href和download属性 触发a标签的点击事件实现下载 实现如下: 表格为 <Table :columns="columns" :data="listdata"></Ta...

VUE中toast的使用与开发

  在这篇文章中介绍了toast是什么,这篇文章主要介绍toast的开发与使用。   开发   Vuejs很流行,并且官方也给出了路由插件vue-router、数据管理插件vuex,但是我们仅仅停留在了使用的阶段,如果能够尝试一下自己开发,并且npm上传,那么对于个人的进步我想还是很大的。      什么是插件   Vue.js的插件有一个公开方法inst...

vue中引入第三方字体图标库iconfont,及iconfont引入彩色图标

转载原文:https://www.cnblogs.com/goloving/p/8855794.html iconfont字体图标使用就不多说了,大致是几部: 1、在iconfont官网选图标,加入购物车,加入项目,下载到本地,解压 2、在项目assets目录新建目录iconfont,用于存放刚才下载解压的代码 3、在main.js导入iconfont.c...

Vue:计算属性(使用、set和get方法、缓存)

1、计算属性的使用 (1)计算属性的基本运用 <body> <div id="app"> {{message1}}{{message2}}<br> {{message1 + ' '+message2}}<br> {{getAll()}}<br> {{all}} </div&g...

Vue 1-- ES6 快速入门、vue的基本语法、vue应用示例,vue基础语法

一、ES6快速入门 let和const  let ES6新增了let命令,用于声明变量。其用法类似var,但是声明的变量只在let命令所在的代码块内有效。 { let x = 10; var y = 20; } x // ReferenceError: x is not defined y // 20 View Code 效果如下...

终于明白了vue使用axios发送post请求时的坑及解决原理

前言:在做项目的时候正好同事碰到了这个问题,问为什么用axios在发送请求的时候没有成功,请求不到数据,反而是报错了,下图就是报错请求本尊 vue里代码如下: this.$http.post('/getMatterList.do',{"matterIds":"1,2,3"}) .then((res)=>{ conso...