VITE+VUE3跨域环境变量配置全过程

 更新时间:2026年01月08日 09:02:19   作者:落魄前端,在线炒粉  
文章介绍了如何在Vue项目中使用Vite管理环境变量,并根据不同的环境(开发、生产)设置相应的变量,它还指导如何在Vue文件和vite.config.ts中获取这些环境变量,并在生产环境中处理跨域问题

一、在项目根目录下新建以下三个文件

1) .env (全局默认配置环境)

2) .env.development (开发环境, 对应npm run dev)

3) .env.production (生产环境,对应npm run build)

二、分别在.env.development,.env.production 写入环境变量

1) .env.development

// .env.production

VITE_APP_TITLE = "线上版本"
VITE_BASE_URL = "https://xxx.xxx.xxx(根据项目实际情况配置)"

2) .env.development

// .env.development

VITE_APP_TITLE = "开发版本"
VITE_BASE_URL = "https://xxx.xxx.xxx(根据项目实际情况配置)"

根据项目实际情况,加入所需要的变量,变量命名以VITE_为开头 

在vue文件中获取环境变量的方法

// .vue文件获取环境变量

console.log(import.meta.env)
console.log(import.meta.env.VITE_APP_TITLE)
console.log(import.meta.env.VITE_BASE_URL)

 在vite.config.ts中获取环境变量的方法

import { defineConfig, loadEnv } from 'vite'

import vue from '@vitejs/plugin-vue'
import styleImport from 'vite-plugin-style-import';

// 如果编辑器提示 path 模块找不到,则可以安装一下 @types/node -> npm i @types/node -D
import { resolve } from 'path'

export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, __dirname)
  console.log(env.VITE_APP_TITLE, env.VITE_BASE_URL)
  return {
    plugins: [vue(),styleImport({
      libs: [
        {
          libraryName: 'vant',
          esModule: true,
          resolveStyle: (name) => `vant/es/${name}/style`,
        },
      ],
    }),],
    resolve: {
      alias: {
        '@': resolve(__dirname, 'src') // 设置 `@` 指向 `src` 目录
      }
    },
    base: './', // 设置打包路径
    server: {
      port: 4000, // 设置服务启动端口号
      open: true, // 设置服务启动时是否自动打开浏览器
      cors: true, // 允许跨域
  
      // 设置代理,根据我们项目实际情况配置
      proxy: {
        '/api': {
          target: env.VITE_BASE_URL, // 环境变量
          changeOrigin: true,
          secure: false,
          rewrite: (path) => path.replace('/api/', '')
        }
      }
    }
  }
})

三、线上环境(npm run build以后)跨域问题处理

在axios中,判断当前环境后再请求前配置好baseUrl

import axios from 'axios'

var http = axios.create({
  timeout: 1000 * 20,
  baseURL: import.meta.env.DEV? '': import.meta.env.VITE_BASE_URL
})

// 请求响应器
http.interceptors.request.use(
  (config) => {
    return config
  },
  function (error) {
    // 返回错误信息
    return Promise.reject(error)
  }
)

http.interceptors.response.use(
  (response) => {
    return response
  },
  (error) => {
    return Promise.reject(error.response)
  }
)

export default http

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue如何使用百度地图自定义信息窗口InfoWindow的样式

    Vue如何使用百度地图自定义信息窗口InfoWindow的样式

    这篇文章主要介绍了Vue如何使用百度地图自定义信息窗口InfoWindow的样式问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 详解在vue-cli项目中使用mockjs(请求数据删除数据)

    详解在vue-cli项目中使用mockjs(请求数据删除数据)

    本篇文章主要介绍了在vue-cli项目中使用mockjs(请求数据删除数据),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 手把手教你如何运行一个前端uniapp项目

    手把手教你如何运行一个前端uniapp项目

    这篇文章主要介绍了如何设置和运行一个基于uni-app框架的项目,包括安装必要的软件、克隆项目并安装依赖,以及如何使用HBuilderX进行项目运行和调试,需要的朋友可以参考下
    2025-01-01
  • 使用Vue动态生成form表单的实例代码

    使用Vue动态生成form表单的实例代码

    这篇文章主要介绍了使用Vue动态生成form表单的实例代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-04-04
  • 解决vue项目使用font-awesome,build后路径的问题

    解决vue项目使用font-awesome,build后路径的问题

    今天小编就为大家分享一篇解决vue项目使用font-awesome,build后路径的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • 使用vite创建vue3项目的详细图文教程

    使用vite创建vue3项目的详细图文教程

    创建Vue3项目有两种常见的方式,一种是想vue2版本一样使用脚手架工具创建,创建vue3项目的脚手架必须是4版本以上的,另一种方法就是使用vite创建,这篇文章主要给大家介绍了关于如何使用vite创建vue3项目的相关资料,需要的朋友可以参考下
    2022-11-11
  • vue集成一个支持图片缩放拖拽的富文本编辑器

    vue集成一个支持图片缩放拖拽的富文本编辑器

    这篇文章主要介绍了vue集成一个支持图片缩放拖拽的富文本编辑器,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2021-01-01
  • vue货币过滤器的实现方法

    vue货币过滤器的实现方法

    这篇文章主要为大家详细介绍了vue货币过滤器的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • vue开发中如何在js文件里使用pinia和组件同步

    vue开发中如何在js文件里使用pinia和组件同步

    在JavaScript文件中封装涉及到使用Pinia的方法时,发现Pinia和组件内容并不同步,二者的状态是独立的,解决办法是,在新建对象的时候,将Pinia作为参数传入,本文给大家介绍vue开发中如何在js文件里使用pinia和组件同步,感兴趣的朋友一起看看吧
    2024-10-10
  • 分析总结20道Vue高频面试题

    分析总结20道Vue高频面试题

    这篇文章主要为大家介绍了分析总结20道Vue高频面试题示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10

最新评论