Nuxt3项目中,在生产环境中,无法获取到 .env 文件的变量,怎么破?
当前环境
Nuxt3版本:3.11.2 Vue3版本:3.4.27 Docker版本:Docker version 26.1.1, build 4cf5afa Docker-compose版本:Docker Compose version v2.27.0-desktop.2
下面是尝试过失败的方案
方案一:使用常规取值方式
从
process.env
对象中获取,例如:process.env.REDIS_HOST
在nuxt.config.ts文件中可以正常获取
在server文件夹下的plugins文件夹下且是生产环境时,就无法获取。
方案二:使用useRuntimeConfig
使用 useRuntimeConfig 组合函数访问运行时配置变量。
这种方式任然在生产环境不能使用。
方案三:使用dotenv
获取
使用dotenv库,获取.env文件中的变量
同样在生产环境中无法获取到~~~~
总结&最终解决方案:
官方文档需要仔细读,用心读,否则会错过很多重要的东西
代码:
生产环境log:
经过测试以下代码能够正常获取到 .env
文件中的值
另外再给一个方案:
如果你使用的是docker部署你的项目,那么在使用 docker-compose.yml
编排你的容器时,可以在该项目中添加环境配置,增加后可以在 process.env
中获取到。
代码
生产环境log: