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

TypeScript执行tsc仅生成空目录不输出.js文件问题咨询

问题原因

编译只生成空目录不输出JS文件,核心是配置和目录结构不匹配:

  1. 目录结构和rootDir配置不匹配
    从你贴的目录缩进看,controllers文件夹和ts文件夹是平级关系,没有放在ts目录内部。你设置rootDir: "./"(即ts目录)后,TypeScript会默认所有需要编译的源码都必须在rootDir范围内,controllers下的TS文件因为在根目录外不会被编译,但TS会预先根据扫描到的目录结构创建空的输出文件夹。
  2. 缺少显式编译范围配置,且未排除输出目录
    你没有配置include字段明确指定要编译的文件,同时exclude仅排除了node_modules,配合开启的allowJs: true,TS可能误将输出目录的文件识别为待编译输入,触发编译逻辑中断,不生成JS产物。

编译后空目录截图

修复方法

按以下步骤调整即可:

  1. 调整目录结构,把controllers文件夹移动到ts目录内,保证所有待编译TS文件都在ts目录下,最终结构:
- 项目根目录
  - ts
    - index.ts
    - app.ts
    - controllers
      - controller.ts
    - tsconfig.json

src作为输出目录不需要手动创建,编译时会自动生成。
2. 修改tsconfig.json配置,补充include字段、把输出目录加入排除列表,核心配置如下:

{
  "exclude": ["node_modules", "../src"],
  "include": ["./**/*.ts"],
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "rootDir": "./",
    "moduleResolution": "node",
    "allowJs": false,
    "outDir": "../src",
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictBindCallApply": true,
    "strictPropertyInitialization": true,
    "noImplicitThis": true,
    "useUnknownInCatchVariables": true,
    "alwaysStrict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "exactOptionalPropertyTypes": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "noUncheckedIndexedAccess": true,
    "noImplicitOverride": true,
    "noPropertyAccessFromIndexSignature": true,
    "allowUnusedLabels": true,
    "allowUnreachableCode": true,
    "skipLibCheck": true
  }
}

如果确实需要编译JS文件,保留allowJs: true即可,必须确保../src在exclude列表中。
3. 删除之前生成的空src文件夹,回到ts目录下重新执行tsc命令即可正常输出JS文件。

如果执行后还是没有产物,先运行tsc --noEmit查看是否存在TS语法/类型错误:如果你的全局TypeScript版本默认开启了noEmitOnError,代码中存在任何错误都会终止文件输出,修复所有报错后再编译即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:48:23