Vue项目中没有设置process.env但是还是可以获取到的原因分析及解决方案

 更新时间:2025年05月13日 10:22:40   作者:清风细雨_林木木  
虽然没有在 Vue 项目中显式设置 process.env,但依然能获取到一些 process.env.xxx是因为Vue CLI 或 Vite 在构建时自动注入了环境变量,本文给大家分享解决方案,感兴趣的朋友一起看看吧

虽然没有在 Vue 项目中显式设置 process.env,但依然能获取到一些 process.env.xxx,是因为:

原因:Vue CLI 或 Vite 在构建时自动注入了环境变量

Vue CLI 项目(使用 webpack)

Vue CLI 默认会在构建过程中注入所有以 VUE_APP_ 开头的 .env 变量,还有几个内建变量:

  • process.env.NODE_ENV:当前构建环境(如 developmentproduction),始终可用
  • process.env.BASE_URL:基础路径
  • process.env.VUE_APP_*:你自定义的变量(例如:VUE_APP_API_URL

Vite 项目

Vite 的环境变量行为稍有不同:

  • .env 中的所有变量会自动注入 import.meta.env
  • 但只有以 VITE_ 开头的变量才会暴露到客户端代码中
# .env
VITE_API_URL=https://api.example.com

在代码中:

// 对于 Vue + Vite 项目
console.log(import.meta.env.VITE_API_URL);

为什么还能用 process.env?

在 Vite 项目中,Vite 会模拟 process.env.NODE_ENV 供部分工具兼容,你可能还能访问:

console.log(process.env.NODE_ENV);  // 'development' | 'production'

但其他自定义变量不会自动挂载到 process.env 中。

如何正确使用? Vue CLI:

VUE_APP_API_URL=https://example.com
console.log(process.env.VUE_APP_API_URL);

Vite:

VITE_API_URL=https://example.com
console.log(import.meta.env.VITE_API_URL);

📌 总结

构建工具环境变量写法获取方式
Vue CLIVUE_APP_process.env.VUE_APP_XXX
ViteVITE_import.meta.env.VITE_XXX
内建变量NODE_ENV都能访问到(Vite 模拟)

到此这篇关于Vue项目中没有设置process.env但是还是可以获取到的原因分析及解决方案的文章就介绍到这了,更多相关Vue没有设置process.env但是还是可以获取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue DPlayer详细使用教程含遇到坑

    Vue DPlayer详细使用教程含遇到坑

    Vue-DPlayer是一个易于使用、高性能的基于Vue.js的视频播放器组件,本文给大家介绍Vue DPlayer详细使用,本文将从四个方面对Vue-DPlayer进行详细的阐述,感兴趣的朋友一起看看吧
    2023-10-10
  • Vue监控路由与路由参数, 刷新当前页面数据的方法汇总

    Vue监控路由与路由参数, 刷新当前页面数据的方法汇总

    这篇文章主要介绍了Vue监控路由与路由参数, 刷新当前页面数据的几种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-10-10
  • vue源码解析之事件机制原理

    vue源码解析之事件机制原理

    这篇文章主要介绍了vue源码解析之事件机制原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • vue实现二维码扫码功能(带样式)

    vue实现二维码扫码功能(带样式)

    最近接了一个移动端的项目,实现微信扫码功能,今天小编利用这个平台给大家分享vue实现二维码扫描功能的实现代码,需要的朋友参考下吧
    2021-08-08
  • 在vue项目中封装echarts的步骤

    在vue项目中封装echarts的步骤

    这篇文章主要介绍了在vue项目中封装echarts的步骤,帮助大家更好的理解和使用vue,感兴趣的朋友可以了解下
    2020-12-12
  • vue项目中如何调用多个不同的ip接口

    vue项目中如何调用多个不同的ip接口

    这篇文章主要介绍了vue项目中如何调用多个不同的ip接口,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • vue-cli axios请求方式及跨域处理问题

    vue-cli axios请求方式及跨域处理问题

    这篇文章主要介绍了vue-cli axios请求方式及跨域处理问题,文中还给大家提到了vue中axios解决跨域问题和拦截器使用,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-03-03
  • vue跳转时根据url锚点(#xxx)实现页面内容定位的方法

    vue跳转时根据url锚点(#xxx)实现页面内容定位的方法

    本前端仔在做页面跳转的时候,被要求跳转到页面时候,把对应部分的内容自动滚动到顶部,我一开始想到的就是根据锚点<a href="#xxid">进行处理,但是发现不太好实现,于是便自己研究了一个比较取巧的方法,需要的朋友可以参考下
    2024-04-04
  • vue2.0 computed 计算list循环后累加值的实例

    vue2.0 computed 计算list循环后累加值的实例

    下面小编就为大家分享一篇vue2.0 computed 计算list循环后累加值的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Vuex入门之Module使用详解

    Vuex入门之Module使用详解

    这篇文章主要介绍了Vuex入门之Module使用详解,由于使用单一状态树,应用的所有状态会集中到一个比较大的对象,当应用变得非常复杂时,store 对象就有可能变得相当臃肿,需要的朋友可以参考下
    2023-11-11

最新评论