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

为何fs.readdirSync(__dirname)读取.ts文件显示为.js扩展名?

为什么fs.readdirSync(__dirname)读到的是.js文件而非.ts文件?

核心原因:你运行的是TypeScript编译后的产物,而非源.ts文件

  • 你的tsconfig.json里配置了outDir: "./dist",TypeScript会把rootDir: "./src"下的所有.ts文件编译成.js文件,输出到dist目录。
  • 当你执行代码时,实际运行的是dist目录里的编译后.js文件,此时__dirname指向的是dist目录中当前文件所在的路径,所以读取到的自然是dist里的.js文件,而非src目录下的源.ts文件。

验证方法

在代码里添加一行打印__dirname的代码,就能确认当前路径:

console.log(__dirname);
// 输出会是类似「xxx/项目根目录/dist」的路径,而不是「xxx/项目根目录/src」

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:15:31