# ESM 中如何获取当前文件目录

URL: https://caijiao.org/how-to/javascript/node-current-dir-esm
Source: docs/how-to/javascript/node-current-dir-esm.md
Description: ESM 中如何获取当前文件目录：ESM 没有 __dirname，需要用 import.meta.url 转成文件路径。 示例可直接复制到浏览器或项目代码中，并附相关教程、工具入口。

## 快速答案

ESM 没有 __dirname，需要用 import.meta.url 转成文件路径。

```js
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
const __dirname = dirname(fileURLToPath(import.meta.url));
```

## 使用要点

- Node 和 Vite 示例要确认当前运行目录、环境变量前缀和操作系统差异。
- 脚本写文件、执行命令或读取路径前，先打印一次目标路径便于排查。

## 相关内容

- [JavaScript / TypeScript 问题](/how-to/javascript/)
- [JavaScript 教程](/javascript/)
- [TypeScript 教程](/ts/)
- [JSON Formatter](/tool/json-formatter)
- [JSON Validator](/tool/json-validator)
