我在根文件夹文件中有.env文件
NODE_ENV=development
NODE_HOST=localhost
NODE_PORT=4000
NODE_HTTPS=false
DB_HOST=localhost
DB_USERNAME=user
DB_PASSWORD=user
和root/app/config/server.js
文件夹中的server.js
文件。server.js
文件的第一行是
require('dotenv').config();
我还尝试了以下几点:
require('dotenv').config({path: '../.env'})
;
require('dotenv').config({path: '../../.env'})
;
- 然而,当我从命令提示符运行
server.js
文件时,我的环境变量没有加载**
node root/app/config/server.js
如果我使用VISUAL STUDIO并按F5,它会加载!!
我不确定我做错了什么,错过了什么。任何建议都将受到高度赞赏。谢谢。
20条答案
按热度按时间uidvcgyl16#
@DavidP的回答笔记中的一条注解使用以下命令记录dotenv.config的输出
这将输出配置日志并显示错误。在我的例子中,它表明配置方法引用的是当前目录,而不是包含我的.env文件的父目录。我可以用以下几点来参考
tvokkenx17#
我遇到过这个问题,结果是Reaction只加载前缀为REACTION_APP_的变量
VueJ可能会出现类似的问题,因为它希望变量带有前缀:VUE_APP_
arknldoa18#
如果您要从嵌套文件调用
dotenv
,并且您的.env
文件位于项目根目录,则您希望通过以下方式连接这些点:htzpubme19#
以下是单行解决方案:
这将递归父目录,直到找到要使用的.env文件。
您也可以选择使用这个名为ckey的模块,该模块的灵感来自上面的一行程序。
主目录中的.env文件。
子目录中一些js文件
lpwwtiir20#
这解决了我在节点
v8.14.1
中的问题:只需执行
require('dotenv').config({path:__dirname+'/./../../.env'})
操作即可得到解析为/some/path/to/env/./../../.env
的位置