Nuxt 3 Runtime Config未被环境变量替换,为何输出默认值?
问题原因与解决方法
你当前的nuxt.config.ts里,public.captchaKey直接写死成了'some value',并没有关联到.env文件里的NUXT_CAPTCHA_KEY变量,所以Nuxt会优先使用你配置的硬编码值,而非读取环境变量。
正确配置方式
方式一:直接关联环境变量
修改nuxt.config.ts,将public.captchaKey的值替换为环境变量引用:
export default defineNuxtConfig({ runtimeConfig: { public: { // 可选添加默认值,避免环境变量未配置时报错 captchaKey: process.env.NUXT_CAPTCHA_KEY || '默认备用值', } }, });
方式二:利用Nuxt自动注入规则
Nuxt 3支持自动注入前缀为NUXT_PUBLIC_的环境变量到runtimeConfig.public,步骤如下:
- 修改
.env文件的变量名:
NUXT_PUBLIC_CAPTCHA_KEY=123456
- 简化
nuxt.config.ts(甚至可以省略显式定义,Nuxt会自动注入):
export default defineNuxtConfig({ runtimeConfig: { public: { captchaKey: process.env.NUXT_PUBLIC_CAPTCHA_KEY, } }, });
注意事项
修改环境变量或配置文件后,必须重启Nuxt开发服务器,新的配置才会生效。重启后调用login函数,控制台就能输出123456了。
内容的提问来源于stack exchange,提问作者morteza mortezaie
相关产品推荐
相关产品推荐

