.env 环境变量不起作用的 5 个原因
即使我们当中最优秀的人也曾经历过这样的事情。
在将所有必需的环境变量添加到文件中后,您刚刚启动了开发服务器.env
,但无论出于何种原因,环境变量就是不起作用。🤔
原因如下:
1. 您的框架不会自动加载.env
文件。
虽然有些框架和包内置了使用 .env 文件的环境变量支持,但许多包(例如Express.js)却没有。你需要自行加载它们,或者通过类似 的库来加载它们dotenv
。
解决方法👉使用类似轻量级包dotenv
来加载环境变量。这在后端尤为常见。
2. 您在启动服务器后添加或以其他方式更新了.env
文件。
大多数开发服务器不会监视.env
文件的更改。如果您稍后添加或更新它们,它们将不会反映在您的应用程序中。
修复👉重新启动服务器。
3. 您的.env
文件位于错误的目录中。
有些开发服务器允许你指定 .env 文件的存放位置。有些则要求它们存放在某个特定位置。
修复👉确保您的 .env 文件位于其应在的位置。
4. 您的环境变量不遵循框架的命名约定。
一些开发服务器包含应包含在客户端包中的环境变量的前缀。
修复👉检查你的开发服务器的文档,确保你使用的前缀(如果有)。以下是一些流行框架的前缀:
5. 您的环境变量命名错误。
你完成了上述所有操作,但还是找不到环境变量。为什么?因为你在.env
文件中调用的是 VITE_MY_LOVELY_VAR,但在代码中却调用的是 VITE_MY_AWESOME_VAR。
修复👉检查变量名称并解决任何差异。
额外提示:不要将您的环境变量提交给 GitHub(或任何源代码控制)。
包起来
你如何处理环境变量和.env
文件?还有什么值得补充的吗?在下面的评论区分享你的技巧或问题!