Description
TypeScript Version: 3.9.5
Search Terms:
"project references" import
"project references" import autocomplete
"project references" monorepo
Description
Hello! First of all, thank you for all amazing work!
I've been trying to befriend yarn workspaces, project references and import autocompletion for a while. It was a relief to see that caveat mentioned in docs is resolved, but didn't manage to do it myself. I've even tried example repo provided by maintainers, but no luck.
When using only yarn workspaces there're no issues at all - all packages listed in workspaces are imported with no issue. After adding ts and project references autocomplete disappears, though Go to Definition works as expected.
I'm is using @babel/preset-typescript
so don't actually rely on d.ts
.
Could you please point to whether I'm doing anything wrong or the issue really takes place?
Thanks in advance!
Code
I've created example repo. Initial commit illustrates how things didn't work initially, and second commit is updates due to maintainer's example.
Expected behavior:
Import autocomplete is available without building with tsc -d
Related Issues:
- Intellisense does not pickup Typescript 3 references #26913
- Type updates don't propagate in monorepo across package boundaries #30946
- Intellisense does not pickup Typescript 3 references #26913
- For editing experience, use source instead of .d.ts files from project references #32028 - PR by @sheetalkamat
Activity
sheetalkamat commentedon Jun 5, 2020
I think #38923 by @andrewbranch will help with this
elitvinchuk commentedon Jun 6, 2020
Thank you @sheetalkamat for pointing me! Subscribed to the issue.
andrewbranch commentedon Jul 15, 2020
@sheetalkamat, my PR almost solved this, but module resolution through node_modules fails when the referenced project isn’t built because
index.d.ts
/index.js
doesn’t exist yet—the resolution host needs to use [your version offileExists
] that recognizes project reference redirect sources, but it’s not accessible in its current location. I remember you originally had that function in Project, but later moved it to Program, but can’t remember why... do you think moving it out to a common utility would make sense?sheetalkamat commentedon Jul 16, 2020
I think you could imprelement getCompilerHost of autoImport provider as configuredProjectInQuestion.getCcompilerHost() and that should fix this. (Note you would want to remove unsetting compiler host of the configured project after updateGraph is complete.)