Nuxt3中runtimeConfig无法读取环境变量的原因排查
问题原因与解决方案
核心问题
你踩了Nuxt构建机制的常见坑:Nuxt执行yarn build时会将环境变量注入到最终构建产物中,后续通过yarn start启动服务时,只会读取已构建好的产物内容,不会重新读取新增的.env文件。
你先在没有.env的情况下完成了构建,此时产物里根本没有NUXT_PUBLIC_BASE_URL的变量信息,之后再添加.env自然不会生效。
配置验证(你的配置本身无问题)
你的变量映射完全符合Nuxt规则:
.env里的NUXT_PUBLIC_BASE_URL会自动转换为驼峰式的runtimeConfig.public.baseUrl,语法和逻辑都没问题。
解决步骤
- 重新构建(推荐方案)
- 删除项目根目录下的
.output构建产物目录 - 确保
.env文件已存在于项目根目录 - 重新执行命令:
yarn build yarn start
- 删除项目根目录下的
- 运行时临时注入(仅服务端场景适用)
如果不想重新构建,可在启动服务时直接传入环境变量:
注意:这种方式仅对服务端渲染逻辑生效,客户端代码里的NUXT_PUBLIC_BASE_URL=https://example.com/api/v1 yarn startruntimeConfig.public.baseUrl依然是构建时的旧值(客户端代码为静态打包产物)。
内容的提问来源于stack exchange,提问作者Shamil Aslanov
相关产品推荐
相关产品推荐

