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

能否将编译生成的.js文件与对应.ts文件放置在同一目录下?

实现TypeScript编译产物与源文件同目录配置

当然可以做到!这其实是TypeScript编译配置里很容易调整的设置,不用复杂操作,只需要修改tsconfig.json里的几个参数就行。

具体步骤:

  1. 调整outDir配置
    打开项目根目录的tsconfig.json,找到compilerOptions下的outDir项——这就是之前让所有.js文件统一输出到dist/的核心配置。直接删除或者注释掉这个配置,因为outDir是指定统一输出目录的开关,移除它之后,TypeScript默认会把编译产物放在对应源文件的同一目录下。

  2. 配置rootDir(可选但建议)
    如果你的源文件都集中在某个根目录下(比如例子里的app/),可以设置rootDir指向这个目录,确保TypeScript能严格匹配源文件和输出文件的层级结构。比如:

    "rootDir": "./app"
    

    这个配置会告诉TS只编译app/下的文件,并且完全保留原有的目录结构,编译后的.js文件就会和对应的.ts文件处于同一位置。

  3. 确认include规则
    要保证TS能找到所有需要编译的.ts文件,在tsconfig.json里设置正确的include规则,比如:

    "include": ["app/**/*"]
    

    这会包含app/目录下所有子文件夹和文件,不会遗漏任何需要编译的源文件。

示例完整配置:

修改后的tsconfig.json大概长这样:

{
  "compilerOptions": {
    "rootDir": "./app",
    "target": "ES6",
    "module": "CommonJS",
    "strict": true,
    // 其他你需要的编译配置...
  },
  "include": ["app/**/*"],
  "exclude": ["node_modules"]
}

额外小提示:

如果不想把编译后的.js(以及类型声明文件.d.ts)提交到版本控制,可以在项目根目录的.gitignore里添加:

*.js
*.d.ts

这样就能避免误提交编译产物啦。

如果你的项目还用到了Webpack、Vite这类构建工具,可能需要同步调整它们的输出配置,但如果只是用tsc命令直接编译,上面的设置就完全够用了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 11:42:46