Skip to content

perf(tsc): support vue files with project reference delcaration#3751

Closed
blake-newman wants to merge 1 commit intovuejs:masterfrom
blake-newman:blake.newman/vue-project-referenc-perf
Closed

perf(tsc): support vue files with project reference delcaration#3751
blake-newman wants to merge 1 commit intovuejs:masterfrom
blake-newman:blake.newman/vue-project-referenc-perf

Conversation

@blake-newman
Copy link
Copy Markdown
Member

Support vue files with project reference output, so that typescript resolves the project reference vue file as the output vue.d.ts file rather than the source.

This drastically improves performance in large projects that have vue files imported from project references. As much as 50% performance improvements as ts no longer recompiles vue files from source.

Setup the real path to pass back the real path of vue files, as they are virtual files the inbuilt realpath always returns the non symlinked version (node_modules), which affects DX with vue-tsc as errors originating from upstream project reference packages are returned with the node modules path rather than the source. This change is also required to power the usage of d.ts files.

@blake-newman blake-newman force-pushed the blake.newman/vue-project-referenc-perf branch from 25c7a84 to f835ad7 Compare November 23, 2023 11:57
@blake-newman
Copy link
Copy Markdown
Member Author

Solves #3526

@blake-newman
Copy link
Copy Markdown
Member Author

Note there is a similar patch here inside volar:

volarjs/volar.js#93

As volar is meant to be framework agnostic it probably needs to be applied at vue-tsc layer, but i'm now investigating if this impacts vscode and should be resolved in volar.

@blake-newman blake-newman force-pushed the blake.newman/vue-project-referenc-perf branch from f835ad7 to 4027ee7 Compare November 23, 2023 13:29
Support vue files with project reference output, so that typescript
resolves the project reference vue file as the output `vue.d.ts` file
rather than the source.

This drastically improves performance in large projects that have vue
files imported from project references. As much as 50% performance
improvements as ts no longer recompiles vue files from source.

Setup the real path to pass back the real path of vue files, as they
are virtual files the inbuilt realpath always returns the non symlinked
version (node_modules), which affects DX with vue-tsc as errors
originating from upstream project reference packages are returned
with the node modules path rather than the source. This change is also
required to power the usage of `d.ts` files.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant