Vue 多环境配置方法

摘要:
开发应用时环境有开发环境、测试环境、生产环境等,此时我们需要配置不同的环境,获取不同的apiUrl前缀,避免了频繁手动更改api.1.安装cross-env插件cross-env是跨平台设置和使用环境变量的脚本。在大多数Windows命令行中在使用NODE_ENV=production设置环境变量时会报错。

开发应用时环境有开发环境、测试环境、生产环境等,此时我们需要配置不同的环境,获取不同的apiUrl前缀,避免了频繁手动更改api.

1.安装cross-env插件

cross-env是跨平台设置和使用环境变量的脚本。
在大多数Windows命令行中在使用NODE_ENV = production设置环境变量时会报错。同样,Windows和Linux命令如何设置环境变量也有所不同。 使用cross-env可以设置在不同的平台上有相同的NODE_ENV参数。

npm install cross-env --save-dev

2.修改package.json的scripts

通过cross-env跨平台地设置环境变量(可以根据自己需求多定义几个环境)

1   "scripts": {
2     "dev": "cross-env NODE_PACK=development webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
3     "start": "npm run dev",
4     "build": "cross-env NODE_PACK=production node build/build.js"
5   },

3.config文件下新建api.js文件

通过process.env.NODE_PACK获取到自定义的环境变量,获取对应环境的API

1 //根据环境设置 BASE_API
2 let apiUrl = '';
3 switch(process.env.NODE_PACK) {
4   case 'production':
5     apiUrl = '"https://it.qqq.cn"';
6     break;
7 .......
8   default:
9     apiUrl = '"http://127.0.0.1:8000"';
10     break;
11 }
12 module.exports = apiUrl;

4.更改config下的dev.env.js和prod.env.js

dev.env.js

1 'use strict'
2 const merge = require('webpack-merge')
3 const prodEnv = require('./prod.env')
4 const apiUrl = require('./api')
5 
6 module.exports =merge(prodEnv, {
7   NODE_ENV: '"development"',
8 BASE_API : apiUrl
9 })

prod.env.js

1 'use strict'
2 const apiUrl = require('./api')
3 
4 module.exports ={
5   NODE_ENV: '"production"',
6 BASE_API : apiUrl
7 }

5.utils下的request.js

添加baseURL: process.env.BASE_API后src/api/api.js的接口只用后缀就行,会自动和baseURL拼接,/也可省略
1 //创建axios实例
2 const service =axios.create({
3   baseURL: process.env.BASE_API, //api 的 base_url
4   timeout: 5000, //请求超时时间
5 })

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

上篇jupyter画图中文显示乱码问题解决办法ZYNQ:使用PetaLinux打包 BOOT.BIN、image.ub下篇

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

相关文章

vue2项目使用axios发送请求

前言:在Vue1.0的时候有一个官方推荐的 ajax 插件vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource。 目前主流的 Vue 项目,都选择axios来完成 ajax 请求,下面来具体介绍一下axios的使用。 项目中安装axios cnpm install axios -S 每个需要请求的组件中...

Vue使用指南(一)

Vue Vue:前台框架 渐进式JavaScript框架 渐进式:vue可以控制页面的一个局部,vue也可以控制整个页面,vue也能控制整个前端项目     -- 根据项目需求,来决定vue控制项目的程度​ 使用 1.下载:https://vuejs.org/js/vue.min.js 2.导入vue.js 3.在自定义的script标签中创建vue...

Vue 百度地图的两种使用方式并且动态添加标注

第一种使用  vue-baidu-map 的方法 首先 npm install vue-baidu-map --save1 全局引入在main.js 里面引入 import BaiduMap from 'vue-baidu-map' Vue.use(BaiduMap, {ak:'2Zvw46SfEejaTIckyE8SwSWxcUkALsxi'})...

关于vue在列表展示数据的时候,选择更改其中一项,数据跟着实时变动的问题

  最近刚接触vue的项目,今天发现页面上有一个问题 就是 页面中有一个表格,点击表格中的修改,弹出来一个修改框可以修改数据,但是现在问题是,在弹出框对其进行修改的时候,列表中对应的数据也在实时的变动。我想要的效果是,当我保存的时候时候,在使列表数据更改,而不是输入框一边更改,这个问题刚开始时没有发现 ,是公司测试的同事给提出来的   之前的代码是点击修...

linux下安装oracle 10g 的艰难之旅

在linux下安装oracle是一件令人生畏的事情,其复杂程度远远超过安装linux操作系统本身。如果能够进行成功的安装oracle,那么同时也就顺便掌握了linux一些技术。本文介绍在redhat linux 下安装oracle 10g 的方法。在这里说明一下,Oracle 10g的g是grid 的缩写,意为网格,目前较为前沿的网络计算技术。   Ora...

vue:app.vue中添加监听beforeunload事件,即当浏览器窗口关闭或刷新时删除vuex中的数据

当打开页面时,添加事件监听,即监听beforeunload事件,beforeunload事件在关闭页面时触发。即当关闭页面时,手动删除localStorage中的数据。 app.vue中的代码如下: <template> <div id="app"> <router-view /> </div>...