uniapp .env 读取不到是什么原因
“在uni-app项目中配置了.env文件,但运行时无法读取到里面的环境变量,请问可能是什么原因导致的?已经确认文件路径和变量命名没有问题,但在代码中通过process.env访问时返回undefined。是否需要额外配置才能生效?”
2 回复
可能原因:
- 未在根目录创建.env文件
- 变量名未以VUE_APP_开头
- 未重启项目(修改.env后需重启)
- 文件编码格式错误
- 使用了错误的读取方式
检查文件位置和变量命名,重启项目即可。
在 UniApp 中无法读取 .env 文件通常由以下原因导致,请逐一排查:
-
文件路径和命名错误
- 确保
.env文件位于项目根目录(与package.json同级)。 - 文件名必须为
.env(生产环境)或.env.development(开发环境),注意以点开头。
- 确保
-
环境变量未正确配置
- 在
.env文件中,变量需以VUE_APP_开头(例如VUE_APP_API_URL=https://api.example.com)。 - 其他前缀的变量在 UniApp 中默认无法被识别。
- 在
-
未安装或配置
dotenv- UniApp 基于 Vue.js,需通过
dotenv解析环境变量。检查是否已安装:npm install dotenv --save - 在
vue.config.js中配置(如存在):const dotenv = require('dotenv'); dotenv.config(); // 加载 .env 文件
- UniApp 基于 Vue.js,需通过
-
重启开发服务器
- 修改
.env后,必须重启服务(如npm run dev)才能生效。
- 修改
-
代码中读取方式错误
- 通过
process.env.VUE_APP_xxx访问,例如:// 在 js/ts 文件中 const apiUrl = process.env.VUE_APP_API_URL; console.log(apiUrl);
- 通过
-
平台兼容性问题
- 部分平台(如小程序)可能限制环境变量使用,需通过构建命令注入变量:
// package.json "scripts": { "build:mp-weixin": "VUE_APP_ENV=production uni-build" }
- 部分平台(如小程序)可能限制环境变量使用,需通过构建命令注入变量:
解决方案步骤:
- 确认文件位置与命名正确。
- 检查变量命名是否符合
VUE_APP_规范。 - 重启开发服务器。
- 通过
console.log(process.env)调试输出,确认变量是否加载。
若问题持续,检查项目依赖或构建工具配置是否覆盖了环境变量设置。

