【VUE】VUE 分环境打包(开发/测试/生产)配置

做个打包笔记,工作比较忙粗糙些,文案相似,方式不同

最近要把Vue项目部署到服务器上,在测试好的项目中执行npm run build就开始打包了。但是每次只能打包到一个环境,不同环境需要配置不同的地址,还得手动更改接口的地址,这给部署带来了极大的不方便。

下面,我们要自己配置命令来实现分环境打包,项目结构如下:
在这里插入图片描述
1.在config目录内新建test.env.js文件(要保证和prod.env.js一致):

'use strict'
module.exports = {
  NODE_ENV: '"test"',
  api: '/api'
}

2.修改config内的prod.env.js文件:

'use strict'
module.exports = {
  NODE_ENV: '"production"',
  api: '/api'
}

3.在build目录下修改webpack.prod.conf.js:

// const env = require('../config/prod.env') // 注释这一行
if (process.env.NODE_ENV === 'test'){
  var env = require('../config/test.env')
}else{
  var env = require('../config/prod.env')
}

4.在build目录下修改build.js:

// process.env.NODE_ENV = 'production' // 注释这一行

5.确认安装cross-env

npm install cross-env --save-dev

6.修改package.json文件(在script里面添加):
在这里插入图片描述

7.修改config内的index.js文件,对环境进行判断并切换。以及代理设置。内容如下:
在这里插入图片描述

8.配置成功,运行命令如下:

测试环境打包,运行:npm run build:test
生产环境打包,运行:npm run build:prod

9.axios请求:

安装axios:

npm install axios

在main.js引入:

import axios from 'axios'

Vue.prototype.axios = axios

new Vue({
  el: '#app',
  axios,
  router,
  components: { App },
  template: '<App/>'
})

在页面axios请求:

var header =  {
	Source: 'EXCHANGE'
},
var params = {
	id: 123456
}
this.axios.get('/api/exchange/api/open/paymentCode',params,{
	headers:header
} ).then(function (response) {
  	console.log(response);
}) .catch(function (error) {
  	console.log(error);
});

this.axios.post('/api/exchange/api/open/paymentCode',params,{
	headers:header
} ).then(function (response) {
    console.log(response);
}) .catch(function (error) {
  	console.log(error);
});
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是对应的配置: 1. 生产环境配置: 在`package.json`文件中,添加如下命令: ``` "build": "vue-cli-service build --mode production" ``` 在根目录下创建`vue.config.js`文件,配置如下: ```javascript module.exports = { // 配置生产环境打包输出目录 outputDir: 'dist', // 配置生产环境的publicPath publicPath: '/', // 打包时不生成.map文件,减少打包体积 productionSourceMap: false, // 生产环境下的webpack配置 configureWebpack: config => { // 在生产环境中使用CDN加速,减少打包体积 if (process.env.NODE_ENV === 'production') { config.externals = { 'vue': 'Vue', 'vue-router': 'VueRouter', 'element-ui': 'ELEMENT', 'axios': 'axios', } } } } ``` 2. 开发环境配置: 在`package.json`文件中,添加如下命令: ``` "serve": "vue-cli-service serve --mode development" ``` 3. 测试环境配置: 在`package.json`文件中,添加如下命令: ``` "test": "vue-cli-service build --mode test" ``` 在根目录下创建`vue.config.js`文件,配置如下: ```javascript module.exports = { // 配置测试环境打包输出目录 outputDir: 'dist-test', // 配置测试环境的publicPath publicPath: '/', // 打包时不生成.map文件,减少打包体积 productionSourceMap: false, // 测试环境下的webpack配置 configureWebpack: config => { // 在测试环境中使用CDN加速,减少打包体积 if (process.env.NODE_ENV === 'test') { config.externals = { 'vue': 'Vue', 'vue-router': 'VueRouter', 'element-ui': 'ELEMENT', 'axios': 'axios', } } } } ``` 以上就是生产开发测试环境配置,同时也可以通过`process.env.NODE_ENV`变量来区不同的环境
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值