Nuxt 3环境变量读取问题解决方案

简介: 自动暴露给客户端和服务端普通的 process.env 变量只在构建时可用.env 文件未正确加载:确保你的 .env 文件在项目根目录确认文件内容格式正确(API_BASE_URL=#)运行环境问题:确保你在运行项目前已经设置了环境变量解决方案修改环境变量命名: 在 .env 文件中:```NUXT_PUBLIC_API_BASE_URL=https://www.fglt.me/

在 Nuxt 3 项目中,你遇到的 process.env.API_BASE_URL 读取不到的问题通常与环境变量的配置方式有关。以下是可能的原因和解决方案:

常见问题原因
环境变量未正确暴露给客户端:
Nuxt 3 中,只有以 NUXTPUBLIC 或 NITRO_ 为前缀的环境变量才会自动暴露给客户端和服务端
普通的 process.env 变量只在构建时可用
.env 文件未正确加载:
确保你的 .env 文件在项目根目录
确认文件内容格式正确(API_BASE_URL=#)
运行环境问题:
确保你在运行项目前已经设置了环境变量
解决方案
修改环境变量命名: 在 .env 文件中:

NUXT_PUBLIC_API_BASE_URL=https://www.fglt.me/

然后修改配置:

nitro: {
  devProxy: process.env.NODE_ENV === 'development' ? {
    '/jp': {
      target: process.env.NUXT_PUBLIC_API_BASE_URL,
      changeOrigin: true,
      secure: false,
    }
  } : undefined,
  routeRules: process.env.NODE_ENV !== 'development' ? {
    '/jp/**': {
      proxy: `${process.env.NUXT_PUBLIC_API_BASE_URL}/**`,
    }
  } : undefined
}

1.使用 runtimeConfig(推荐)

export default defineNuxtConfig({
  runtimeConfig: {
    public: {
      apiBaseUrl: process.env.API_BASE_URL || '默认值'
    }
  },
  // 其他配置...
})

然后通过 useRuntimeConfig() 访问

确保环境文件加载: 在 nuxt.config.ts 顶部添加:

import { loadEnv } from 'vite'
const env = loadEnv(process.env.NODE_ENV, process.cwd(), '')

调试建议
在 nuxt.config.ts 中添加临时调试:

console.log('API_BASE_URL:', process.env.API_BASE_URL)

检查构建后的输出,确认环境变量是否被正确替换
确保你的服务器环境(如果是部署的)也设置了相同的环境变量
完整示例配置

export default defineNuxtConfig({
  nitro: {
    devProxy: process.env.NODE_ENV === 'development' ? {
      '/jp': {
        target: process.env.NUXT_PUBLIC_API_BASE_URL,
        changeOrigin: true,
        secure: false,
      }
    } : undefined,
    routeRules: process.env.NODE_ENV !== 'development' ? {
      '/jp/**': {
        proxy: `${process.env.NUXT_PUBLIC_API_BASE_URL}/**`,
      }
    } : undefined
  },
  runtimeConfig: {
    public: {
      apiBaseUrl: process.env.NUXT_PUBLIC_API_BASE_URL
    }
  }
})

通过以上调整,你的环境变量应该能够被正确读取了。

目录
相关文章
|
JavaScript
nuxt项目:全局获取process.env信息
nuxt项目:全局获取process.env信息
916 0
|
开发框架 JavaScript 前端开发
百度富文本编辑器配置(vue3)
百度富文本编辑器配置(vue3)
|
缓存 资源调度 前端开发
微前端-qiankun:vue3-vite 接入 vue3、nuxt3、vue2、nuxt2等子应用
微前端-qiankun:vue3-vite 接入 vue3、nuxt3、vue2、nuxt2等子应用
3134 0
|
JavaScript 编译器
成功解决:Module build failed: Error: Vue packages version mismatch
这篇文章记录了解决Vue项目中遇到的"Module build failed: Error: Vue packages version mismatch"错误的步骤,原因是项目中Vue依赖的版本不一致,解决方法是删除`node_modules`后重新安装指定版本的Vue和`vue-template-compiler`,确保版本匹配,最终成功运行项目。
成功解决:Module build failed: Error: Vue packages version mismatch
|
关系型数据库 数据库 PostgreSQL
POSTGRESQL中时间戳的奥秘timestamptz
探索 PostgreSQL 中的时间戳类型:timestamp 代表无时区的时间点,而 timestamptz 包含时区信息,可转换。了解它们的区别对于数据库操作至关重要。使用 `AT TIME ZONE` 关键字可实现两者间的转换。关注木头左,获取更多数据库知识!
POSTGRESQL中时间戳的奥秘timestamptz
|
前端开发 测试技术 API
NuxtJS3配置多环境变量
OK,配置完成~~~~~~
615 4
什么年代了,你还在手动配置vite路径别名?
【8月更文挑战第3天】Vite路径别名配置,简化项目引入
2688 3
|
数据采集 搜索推荐 开发者
Nuxt3 实战 (十二):SEO 搜索引擎优化指南
这篇文章介绍了如何为Nuxt.js项目添加favicon图标和TDK(标题、描述、关键词),安装@nuxtjs/seo模块,以及如何设置Robots、Sitemap、OG Image、Schema.org、Experiments等。文章还提到了添加Google Analytics、Microsoft Clarity和Umami统计代码的方法。文章最后总结称,Nuxt.js 3集成了很多SEOModules,使开发者能够更加高效便捷地做好搜索引擎方面的优化。
1308 0
Nuxt3 实战 (十二):SEO 搜索引擎优化指南
|
存储 移动开发 小程序
uniapp富文本editor输入二次扩展兼容微信小程序
uniapp富文本editor输入二次扩展兼容微信小程序
1546 0

热门文章

最新文章