You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js启动脚本加载.env文件失败,报bad option: --env-file错误

解决Node.js脚本中--env-file选项报错的问题

错误根源

你遇到的node: bad option: --env-file=./.env/.env.dev错误,核心原因是Node.js的--env-file内置选项是v20.6.0版本才新增的功能,如果你的Node版本低于这个版本,就会识别不了该参数,抛出错误。

另外注意到报错信息里的路径是./.env/.env.dev,但你package.json脚本里写的是./env/.env.dev,需要确认.env文件的实际存放路径,避免路径不匹配导致后续加载失败。

解决方案

方案1:升级Node.js版本

直接将Node.js升级到v20.6.0或更高版本,即可原生支持--env-file选项:

  • 若使用nvm管理版本,执行:
    nvm install 20.6.0
    nvm use 20.6.0
    
  • 也可直接从Node.js官方渠道下载最新稳定版安装。

升级后确认脚本里的.env路径正确(比如文件在env/.env.dev就保持原脚本不变),重新运行npm run start:dev即可。

方案2:用dotenv包加载环境变量(无需升级Node)

如果不想升级Node版本,使用社区的dotenv包同样可以加载.env文件:

  1. 安装dotenv依赖:
    npm install dotenv --save-dev
    
  2. 在server.ts最顶部添加加载代码:
    import dotenv from 'dotenv';
    // 根据实际文件位置调整路径
    dotenv.config({ path: './env/.env.dev' });
    
  3. 修改package.json的脚本,移除--env-file选项:
    "scripts": {
      "start:dev": "node --loader ts-node/esm source/server.ts"
    }
    

额外注意事项

  • 修正.env文件格式:DB_PWD= my_secret和DB_NAME= my_secret里的空格会导致变量值带多余空格,建议改成DB_PWD=my_secret、DB_NAME=my_secret,避免解析异常。
  • 确认tsconfig.json配置无误,当前配置已满足ts-node解析ES模块的要求。

内容的提问来源于stack exchange,提问作者Ninja G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 23:44:50