-
-
Notifications
You must be signed in to change notification settings - Fork 158
Error: Source file not found #286
Copy link
Copy link
Closed
Labels
Description
Reproduction link or steps
- Clone https://github.com/issueset/tsdown-composite-build-issue and install
- If I run tsdown directly, I will get the following error:
$ rm -rf dist; pnpm run build:tsdown
> tsdown-composite@1.0.0 build:tsdown /private/tmp/tsdown-composite
> tsdown
ℹ tsdown v0.12.5 powered by rolldown v1.0.0-beta.10-commit.87188ed
ℹ Using tsdown config: /private/tmp/tsdown-composite/tsdown.config.ts
ℹ entry: src/dom/dom.ts, src/node/node.ts
ℹ tsconfig: tsconfig.json
ℹ Build start
ERROR Error: Build failed with 2 errors:
[plugin rolldown-plugin-dts:generate]
Error: Source file not found: /private/tmp/tsdown-composite/src/dom/dom.ts
at createTsProgram (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown-plugin-dts@0.13.6_rolldown@1.0.0-beta.10-commit.87188ed_typescript@5.8.3/node_modules/rolldown-plugin-dts/dist/tsc-yr4fe8f_.js:93:25)
at createOrGetTsModule (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown-plugin-dts@0.13.6_rolldown@1.0.0-beta.10-commit.87188ed_typescript@5.8.3/node_modules/rolldown-plugin-dts/dist/tsc-yr4fe8f_.js:72:17)
at tscEmit (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown-plugin-dts@0.13.6_rolldown@1.0.0-beta.10-commit.87188ed_typescript@5.8.3/node_modules/rolldown-plugin-dts/dist/tsc-yr4fe8f_.js:100:17)
at PluginContextImpl.handler (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown-plugin-dts@0.13.6_rolldown@1.0.0-beta.10-commit.87188ed_typescript@5.8.3/node_modules/rolldown-plugin-dts/dist/index.js:744:20)
at plugin (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown@1.0.0-beta.10-commit.87188ed/node_modules/rolldown/dist/shared/src-euELSICh.mjs:2748:30)
at plugin.<computed> (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown@1.0.0-beta.10-commit.87188ed/node_modules/rolldown/dist/shared/src-euELSICh.mjs:3538:18)
[plugin rolldown-plugin-dts:generate]
Error: Source file not found: /private/tmp/tsdown-composite/src/node/node.ts
at createTsProgram (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown-plugin-dts@0.13.6_rolldown@1.0.0-beta.10-commit.87188ed_typescript@5.8.3/node_modules/rolldown-plugin-dts/dist/tsc-yr4fe8f_.js:93:25)
at createOrGetTsModule (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown-plugin-dts@0.13.6_rolldown@1.0.0-beta.10-commit.87188ed_typescript@5.8.3/node_modules/rolldown-plugin-dts/dist/tsc-yr4fe8f_.js:72:17)
at tscEmit (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown-plugin-dts@0.13.6_rolldown@1.0.0-beta.10-commit.87188ed_typescript@5.8.3/node_modules/rolldown-plugin-dts/dist/tsc-yr4fe8f_.js:100:17)
at PluginContextImpl.handler (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown-plugin-dts@0.13.6_rolldown@1.0.0-beta.10-commit.87188ed_typescript@5.8.3/node_modules/rolldown-plugin-dts/dist/index.js:744:20)
at plugin (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown@1.0.0-beta.10-commit.87188ed/node_modules/rolldown/dist/shared/src-euELSICh.mjs:2748:30)
at plugin.<computed> (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown@1.0.0-beta.10-commit.87188ed/node_modules/rolldown/dist/shared/src-euELSICh.mjs:3538:18)
at normalizeErrors (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown@1.0.0-beta.10-commit.87188ed/node_modules/rolldown/dist/shared/src-euELSICh.mjs:2218:18)
at handleOutputErrors (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown@1.0.0-beta.10-commit.87188ed/node_modules/rolldown/dist/shared/src-euELSICh.mjs:3148:34)
at transformToRollupOutput (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown@1.0.0-beta.10-commit.87188ed/node_modules/rolldown/dist/shared/src-euELSICh.mjs:3142:2)
at RolldownBuild.write (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown@1.0.0-beta.10-commit.87188ed/node_modules/rolldown/dist/shared/src-euELSICh.mjs:4292:10)
at async build (file:///private/tmp/tsdown-composite/node_modules/.pnpm/rolldown@1.0.0-beta.10-commit.87188ed/node_modules/rolldown/dist/shared/src-euELSICh.mjs:4330:22)
at async file:///private/tmp/tsdown-composite/node_modules/.pnpm/tsdown@0.12.5_typescript@5.8.3/node_modules/tsdown/dist/index.js:837:24
at async Promise.all (index 0)
at async rebuild (file:///private/tmp/tsdown-composite/node_modules/.pnpm/tsdown@0.12.5_typescript@5.8.3/node_modules/tsdown/dist/index.js:830:3)
at async buildSingle (file:///private/tmp/tsdown-composite/node_modules/.pnpm/tsdown@0.12.5_typescript@5.8.3/node_modules/tsdown/dist/index.js:820:2)
at async Promise.all (index 0)
at async build (file:///private/tmp/tsdown-composite/node_modules/.pnpm/tsdown@0.12.5_typescript@5.8.3/node_modules/tsdown/dist/index.js:792:19)
at async CAC.<anonymous> (file:///private/tmp/tsdown-composite/node_modules/.pnpm/tsdown@0.12.5_typescript@5.8.3/node_modules/tsdown/dist/run.js:22:2)
at async runCLI (file:///private/tmp/tsdown-composite/node_modules/.pnpm/tsdown@0.12.5_typescript@5.8.3/node_modules/tsdown/dist/run.js:40:3) {
errors: [Getter/Setter]
}
ELIFECYCLE Command failed with exit code 1.- If I run
tsc --buildfirstly, then runningtsdownis fine:
$ rm -rf dist; pnpm run build:tsc; pnpm run build:tsdown
> tsdown-composite@1.0.0 build:tsc /private/tmp/tsdown-composite
> tsc --build .
> tsdown-composite@1.0.0 build:tsdown /private/tmp/tsdown-composite
> tsdown
ℹ tsdown v0.12.5 powered by rolldown v1.0.0-beta.10-commit.87188ed
ℹ Using tsdown config: /private/tmp/tsdown-composite/tsdown.config.ts
ℹ entry: src/dom/dom.ts, src/node/node.ts
ℹ tsconfig: tsconfig.json
ℹ Build start
ℹ dist/dist_tsdown/node/node.js 0.17 kB │ gzip: 0.15 kB
ℹ dist/dist_tsdown/dom/dom.js 0.16 kB │ gzip: 0.15 kB
ℹ dist/dist_tsdown/dom/dom.d.ts 0.01 kB │ gzip: 0.03 kB
ℹ dist/dist_tsdown/node/node.d.ts 0.01 kB │ gzip: 0.03 kB
ℹ 4 files, total: 0.35 kB
✔ Build complete in 323msWhat is expected?
No error.
What is actually happening?
Error shown as above.
Any additional comments?
The repo above has 3 different tsconfig files:
tsconfig.dom.json: Only includes .ts files undersrc/dom/. It ensures that all files undersrc/dom/don't use Node.js types.tsconfig.node.json: Only includes .ts files undersrc/node/. It ensures that all files undersrc/node/don't use browser types.tsconfig.json: A root tsconfig.json that usesreferencesto includes other two tsconfig files.
This a good pattern for a large TypeScript project. It improves both type checking soundness and also the performance (e.g., tsc doesn't need to re-compile src/dom/ if only src/node/ get changed`)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type
Fields
Give feedbackPriority
None yet
Effort
None yet