• 因为本地开发时请求地址和线上环境请求地址不一致,部署路径不一致,其他环境变量因为部署环境不一致的原因,配置.env为了方便打包和开发

1.先在文件根目录创建你所需的环境一般为开发,生产,测试(我这里举例开发和生产环境);

2.在.env.development中写入

NODE_ENV=development  //为开发环境
VUE_APP_BASE_URL='http://192.168.2.85:8180/' //在本地所请求的路径
VUE_APP_PREVIEW=true

在.env.production中写入

NODE_ENV=production //为生产环境
VUE_APP_BASE_URL='https://192.168.4.33' //开发环境下所请求的路径
VUE_APP_PREVIEW=true

3.在vue.config.js文件夹中进行相关配置(可通过process.env.NODE_ENV来判断生产环境)

const { defineConfig } = require('@vue/cli-service');
module.exports = defineConfig({
  transpileDependencies: true,
  productionSourceMap: false, // 取消 .map 文件的打包,加快打包速度
  publicPath: "/message",// 公共路径 默认为 '/' , 建议使用 './' 相对路径
  outputDir: process.env.NODE_ENV=='development' ? 'dist':'message', //生成文件夹的目录名称(例如:打包生产环境生成的文件夹目录为message)

  devServer: {
    open: true,
    //设置开发接口代理
    proxy: {
      "/api": {
        target:
          "http://192.168.2.85:8180/", 
        changeOrigin: true,
        pathRewrite: {
           "^/api": "http://192.168.2.85:8180/", 
        },
      },
      
    },
  },
})

4.在封装的axios中可以对baseURL的路经拼接进行判断

import axios from 'axios';  // 引入axios
import { Toast } from 'vant';
const production = process.env.NODE_ENV === 'production'
const http = axios.create({
    baseURL: production ? '/payapplet' : '/api',// 当为开发环境时路径拼接/api,生产环境根据公司要求而定
    timeout: 5000  //这是设置请求接口超时的时间,一般都设置为5000~6000
});
 
//导出封装的axios对象
export default http;

5.在package.json(在运行npm run serve 时为开发环境, 运行npm run build 时为生成环境)

"scripts": {
    "serve": "vue-cli-service serve --mode development",
    "build": "vue-cli-service build --mode production"
  },

[如有不足和错误的地方请大佬们指出,谢谢]

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐