Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TS6305: Output file '/path/to/dist/index.d.ts' has not been built from source file '/path/to/src/index.ts'. #392

Closed
mvargeson opened this issue Feb 24, 2020 · 6 comments
Labels

Comments

@mvargeson
Copy link

mvargeson commented Feb 24, 2020

Current behavior

You receive a TS6305 error when using the fork-ts-checker-webpack-plugin. The error does not show up when not using the plugin. Running the build again without running a cleanup script to remove the output directory and buildinfo file will result in a no error being outputted. See the steps to reproduce for more info.

Expected behavior

You either receive this error consistently when using or not using the plugin, or don't receive the error at all.

Steps to reproduce the issue

https://github.com/mvargeson/fork-ts-checker-webpack-plugin-resolution-issue#how-to-reproduce

Issue reproduction repository

https://github.com/mvargeson/fork-ts-checker-webpack-plugin-resolution-issue

Environment

  • fork-ts-checker-webpack-plugin: 4.0.4
  • typescript: 3.8.2
  • tslint: N/A
  • webpack: 4.41.5
  • os: macOS 10.15.3
  • node: 12.16.0
@mvargeson mvargeson added the bug label Feb 24, 2020
@mvargeson mvargeson changed the title Receiving TS6305 error only when plugin is being used TS6305: Output file '/path/to/dist/index.d.ts' has not been built from source file '/path/to/src/index.ts'. Feb 25, 2020
@berickson1
Copy link

I did a little bit of digging into this and I think it's a race condition when building.

I believe this stems from fork-ts-checker and ts-loader running in parallel. Typescript composite projects rely on the dist files being emitted and on disk, so if fork-ts-checker starts typechecking a module that ts-loader hasn't emitted yet, the above error would likely occur. That also explains why running build a second time resolves the issue (since the older files are already on disk). This could potentially result in changes not being type-checked if on-disk files were stale.

I don't have any concrete evidence to back this up but I think it's plausible...

@piotr-oles piotr-oles mentioned this issue Apr 18, 2020
26 tasks
@piotr-oles
Copy link
Collaborator

@mvargeson , @berickson1
Please try fork-ts-checker-webpack-plugin@alpha - I've published a new version which should resolve this issue 🚀
I will close this issue to clean-up the backlog. If this release didn't solve the issue, we can re-open this :)

@berickson1
Copy link

@piotr-oles - Tried this on 5.0.0-alpha.14 and it seems to resolve this issue. Thanks!

Note: I did run into #433 when testing this

cc: @mvargeson

@aferditakrasniqi
Copy link

aferditakrasniqi commented Mar 11, 2022

@piotr-oles I am having this issue with version "fork-ts-checker-webpack-plugin": "7.2.1".
I have a monorepo with yarn workspaces > services using a shared library as a dependency, imports from the library fail with this TS6305:.. error. It works fine when building locally with tsc -b.

For context on webpack config we're using babel-loader as well as ts-loader (ts-loader has these options projectReferences: true, transpileOnly: true)

@piotr-oles
Copy link
Collaborator

@aferditakrasniqi Could you create a new issue? I will need a reproduction repository to help you.

@damiangreen
Copy link

damiangreen commented Nov 16, 2022

@piotr-oles this alpha version has disappeared. I appear to be having the same issue as @aferditakrasniqi , with a monorepo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants