Node.js 20.9.0中Nodemon无法加载.env变量(值为undefined)
问题描述
- Node.js 20.6.0及以上版本内置了.env文件支持,无需依赖dotenv包
- 直接执行
node --env-file=.env index.js时,环境变量可正常加载 - 使用nodemon执行
npm run dev脚本时,环境变量始终为undefined - 相关版本:
- Node.js:20.9.0
- Nodemon:3.0.1
- 已尝试修改package.json脚本为:
但问题仍未解决"scripts": {"dev": "nodemon --exec 'node --env-file=.env index.js'"}
解决方案
1. 调整npm脚本的引号写法
npm脚本在不同操作系统的shell中对单引号的解析存在差异,去掉单引号即可:
"scripts": { "dev": "nodemon --exec node --env-file=.env index.js" }
2. 使用nodemon配置文件管理执行命令
在项目根目录创建nodemon.json文件,写入以下内容:
{ "exec": "node --env-file=.env index.js" }
然后修改package.json的脚本为:
"scripts": { "dev": "nodemon" }
3. 排查基础问题
- 确认
.env文件确实位于项目根目录,文件名无拼写错误(比如不要写成.env.local或.env.dev) - 检查代码中读取环境变量的语句是否正确,比如
process.env.YOUR_VARIABLE_NAME,变量名要和.env文件中的完全一致
内容的提问来源于stack exchange,提问作者Sakar
相关产品推荐
相关产品推荐

