Node.js无法读取.env文件,dev脚本配置问题求助
问题原因及解决办法
核心问题:
node --env-file=.env && tsx ...里的两个命令是独立进程,第一个node进程加载的环境变量只在自身生效,进程结束后这些变量不会传递给后面的tsx进程,所以tsx根本读不到.env里的内容。单独跑node --env-file=.env也只是启动了一个空的node进程,没有执行任何读取环境变量的逻辑,自然看不到效果。解决方法:
让tsx直接加载.env文件:tsx支持
--env-file参数(和node的用法一致),把scripts改成:"scripts": { "dev": "tsx --env-file=.env watch src/server.ts" }这样tsx进程会直接加载.env中的环境变量,启动后就能正常读取。
用dotenv包兜底:如果你的tsx版本不支持
--env-file,先安装依赖:npm install dotenv --save-dev然后在
src/server.ts的最顶部添加一行:import 'dotenv/config'这样不管用什么命令启动服务,都会自动加载.env文件里的环境变量。
内容的提问来源于stack exchange,提问作者user22453190
相关产品推荐
相关产品推荐

