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

如何在Node.js/ES6环境下为dotenv文件设置自定义路径?

在ES模块("type": "module")中为dotenv设置自定义.env路径

当你把项目切换为ES模块("type": "module")后,没法再用CommonJS的require('dotenv').config()写法,但依然有两种可靠方式指定自定义路径的.env文件:

方法一:导入dotenv模块并调用config方法

这是最灵活的方案,逻辑和CommonJS模式一致,只是要适配ES模块的路径处理(ES模块里没有__dirname,得通过import.meta.url推导):

import dotenv from 'dotenv';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';

// 模拟CommonJS中的__dirname
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

// 指定自定义路径的.env文件
dotenv.config({ path: join(__dirname, './models/.env') });

方法二:通过import语句的查询参数传递路径

如果你习惯用import 'dotenv/config'的简洁写法,可以直接在import语句里加查询参数指定路径:

import 'dotenv/config?path=./models/.env';

注意这里的路径是相对于当前模块文件的相对路径,也可以直接写绝对路径。

你之前的代码为什么不生效?

你尝试的代码有两个关键问题:

  1. 直接调用config()时,并没有导入这个函数(import 'dotenv/config'不会把config函数暴露到当前作用域)
  2. 调用dotenv.config()时,没有先导入dotenv模块,导致dotenv变量未定义

改用上面任意一种方法,就能正常加载自定义路径的.env文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 11:30:08