03:2020-11-14 vue不同的api地址生产环境和开发环境配置打包

vue项目里面,通过vue-cli中的npm run build 可对项目进行打包,可是在实际工作中可能有生产环境,测试环境甚至更多,每个环境的请求地址都是不同的,如果我们每次都手动修改请求地址并打包,将非常繁琐,所以我们需要稍微配置一下,可以实现项目不同环境的打包配置

第一种方式

1、首先安装cross-env,命令: npm i --save-dev cross-env;
2、在config文件夹里面新建文件:test.env.js,(文件名自己随便取),格式类似:

'use strict'
module.exports = {
  NODE_ENV: '"testing"',
  EVN_CONFIG:'"test"',
  API_ROOT:'"测试环境接口链接"'
}

3、同样在config文件夹下面修改prod.env.js文件,大概内容如下:

'use strict'
module.exports = {
  NODE_ENV: '"production"',
  EVN_CONFIG:'"prod"',
  API_ROOT:'"生产环境接口链接"'
}

4、同样config文件夹下面修改index.js文件,如下:

build: {
    prodEnv: require('./prod.env'),
    testEnv: require('./test.env'),
    //增加上面两行代码
    // Template for index.html
    index: path.resolve(__dirname, '../dist/index.html')
  }

5、在build文件夹下修改webpack.prod.conf.js文件,如下:

// const env = require('../config/prod.env')
//注释上面一行加上下面一行
const env = config.build[process.env.ENV_CONFIG+'Env']

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...') //注释掉
const spinner = ora('building for ' + process.env.NODE_ENV + ' of ' + process.env.ENV_CONFIG+ ' mode...' )//添加这行

7、最后一步,修改package.json文件,如下:

"scripts": {
   "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
   "start": "npm run dev",
   "build": "cross-env NODE_ENV=production ENV_CONFIG=prod node build/build.js",
   "build:test": "cross-env NODE_ENV=testing ENV_CONFIG=test node build/build.js"
 },

一切都配置好了,我们来做个小实验验证一下,app.vue文件下打印当前环境,如下:

<script>
	export default {
	  mounted(){
	    console.log(process.env)
	  }
	}
</script>

然后我们分别查看npm run dev,npm run build,npm run build–test这三条命令下打印的结果,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

API_ROOT换成自己不同环境的接口就行了,然后调用的时候设定axios的默认地址就行了,如下:

axios.defaults.baseURL = process.env.API_ROOT//前提引入了axious

第二种方式(待验证)

一、先配置vue生产环境和开发环境配置不同的api地址,
vue-cli2构建的项目中,有两个文件是用来区分生产环境和开发环境的。

1、在config文件夹里面新建文件:test.env.js 和 pro.env.js
2、在main.js文件中引入static下新建的apiConfig这个JSON文件。

import apiConfig from '../static/apiConfig.json';
apiConfig={
	"api": "apiDevUrl",
	"api2": "apiDev2Url"
}

3、在main.js中添加如下代码:
development是开发环境,production是生产环境。这里我用的是axios(要安装), Vue.prototype.apiConfig是vue的全局属性

let env = process.env.NODE_ENV;
if (env == 'development') {
  axios.defaults.baseURL = apiConfig.api//测试()
  Vue.prototype.apiConfig = apiConfig
} else if (env == 'production') {
  axios.defaults.baseURL = apiConfig.api2//生产()
  Vue.prototype.apiConfig = apiConfig
}

4、然后在组件中使用,可直接打出log,查看当前的api地址:

console.log(this.apiConfig)

二、开始配置不同打包环境命令
1、更改package.josn文件
在package.json文件的script文件下添加"test": “node build/build.js”,

  "scripts": {
    "dev": "node build/dev-server.js",
    "start": "node build/dev-server.js",
    "build": "node build/build.js",
    "test": "node build/build.js",   //添加这一行代码
    "lint": "eslint --ext .js,.vue src"
  },

2、更改config/prod.env.js文件

var targetEvent = process.env.npm_lifecycle_event;
if (targetEvent == 'test') {
  var obj = {
    NODE_ENV: '"development"'
  }
} else if (targetEvent == 'build') {
  var obj = {
    NODE_ENV: '"production"'
  }
}
module.exports = obj;
  1. 在main.js文件中添加
//引入api文件
import apiConfig from '../static/apiConfig.json'   //测试api存放的地址
let env = process.env.NODE_ENV;
let apis = "";
if (env == 'development' || env == 'test') {
  apis = apiConfig.api;
} else if (env == 'production') {
  apis = apiConfig.api2;
}

4、开始打包
分别查看npm run dev,npm run build,npm run test这三条命令下打印的结果,如下:

在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue.js 是一个流行的前端框架,有助于构建互动的用户界面。在开发 Vue.js 应用程序时,通常需要配置不同的环境,如开发环境和生产环境。下面是一个简单的教程,介绍如何配置 Vue.js 的开发环境和生产环境。 1. 开发环境配置: 在开发环境中,我们通常需要启用一些有用的功能,如热重载、错误提示和调试工具。以下是一些常见的开发环境配置步骤: - 安装 Node.js:Vue.js 依赖于 Node.js 运行环境。请确保已经在您的计算机上安装了最新版本的 Node.js。 - 创建新的 Vue 项目:使用 Vue CLI 可以快速创建一个新的 Vue 项目。您可以使用以下命令安装 Vue CLI: ``` npm install -g @vue/cli ``` - 创建并启动开发服务器:在项目目录下,使用以下命令创建并启动开发服务器: ``` vue create my-project cd my-project npm run serve ``` - 配置开发环境:您可以在项目根目录下的 `.env.development` 文件中设置开发环境的相关配置,如 API 地址、调试模式等。这个文件会在开发过程中被自动加载。 2. 生产环境配置: 在生产环境中,我们通常需要优化代码、压缩文件大小,并禁用一些开发阶段的功能。以下是一些常见的生产环境配置步骤: - 配置生产环境变量:您可以在项目根目录下的 `.env.production` 文件中设置生产环境的相关配置,如 API 地址、版本号等。这个文件会在构建生产版本时被自动加载。 - 构建生产版本:使用以下命令构建生产版本的代码: ``` npm run build ``` - 部署生产版本:构建完成后,会生成一个 `dist` 目录,里面包含了打包好的生产代码。将该目录下的文件部署到服务器上即可。 以上是一个简单的 Vue.js 开发环境和生产环境配置教程。根据实际需求,您可能还需要进行更多的配置和优化。建议查阅 Vue.js 官方文档以获取更详细的信息和指南。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值