【vue】vue根据不同环境(正式、测试)打包(一)

7 篇文章 0 订阅

前提姿势

获取终端中输入的命令

下面的这个在webpack中会有个process对象 ,看下面图就知道使用 process.argv.splice() 就可以获取输入命令参数了

此处教程区分接口

这里是通过不同命令将修改接口前部分的地址或者修改单词。下面是我修改的,都是同一个链接,但后面的不一样。

// 正式的路径为:https://api.xxxx.com/ajmall
// 测试环境路径为 https://api.xxxx.com/dev

教程

1、进行代理跨域(可选)

此处我做代理为了跨域。此处是可选的,在 dev.env.js 文件中必须得配置下。

// 1、在config文件夹中,找到 index.js ,添加进代理代码段
'use strict'
// Template version: 1.2.4
// see http://vuejs-templates.github.io/webpack for documentation.

const path = require('path')
var webpack = require("webpack");
module.exports = {
  dev: {
    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {
      '/dev': {
        target:'http://api.xxxxx.com/dev',
        changeOrigin: true,   // 2、是否跨域,ture打开
        pathRewrite: {
         '^/dev': '/'
        }
       }
    },
    ...
}
2、dev.env.js 与 prod.env.js

在config文件夹的 dev.env.js 与 prod.env.js 分别本地和正式。本地开发的时候是 dev.env.js跑着,但是请求接口的话,会有跨域问题,直接做代理,也就是说 dev.env…js 只要配置下代理即可。打包后跑的是prod.env.js脚本,那么这里得区分下打什么样的包(测试还是正式)

// 1、在config文件夹中 dev.env.js
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  ADMIN_SERVER: '"/dev/"', // 2、可选择用于代理(解决跨域)
  API: '""'
})
// 1、在config文件夹中 prod.env.js
'use strict'
module.exports = {
  NODE_ENV: '"production"',
  API: process.argv.splice(2) == 'dev'?'"/dev"':'"/ajmall"' // 2、此处是判断你输入,如果是输入的 npm run  build -- dev 那么就赋值给 process.env.API 。如果不是直接build的,后面是正式包。
}
3、axios 请求配置

此处是axios中配置下:

import axios from 'axios'
var ajax = axios.create({
    baseURL: process.env.ADMIN_SERVER || process.env.API, //  1、process.env.ADMIN_SERVER 是代理的URL。process.env.API是打包的 api 。這句判断是如果 代理没有,那么走后面的。这个是js短路
    headers: {
        appkey:'xxxxxxxxxxx'
    }
});

export default ajax;
4、完成

到了第三步是已经完成,检验下成果:

# 输入下面命令,就是打测试包
npm run build -- dev

# 输入下面的,就是打正式包
npm run build

打包好了,就放在服务器中看看是否请求链接不一样。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值