码迷,mamicode.com
首页 > 其他好文 > 详细

Vue 多环境配置方法

时间:2019-10-18 17:23:43      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:json   开发   rod   pack   utils   根据   自动   tps   ports   

开发应用时环境有开发环境、测试环境、生产环境等,此时我们需要配置不同的环境,获取不同的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.bkjk.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 多环境配置方法

标签:json   开发   rod   pack   utils   根据   自动   tps   ports   

原文地址:https://www.cnblogs.com/daidechong/p/11699446.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!