T
TanStack5mo ago
stormy-gold

VSCode Intellisense very slow after upgrading TanStack Start?

Hello, I'm working in a monorepo (using pnpm & Turborepo) in which I have two applications using TanStack Start (and a few other applications that don't). I was previously using the TanStack Router & Start versions 1.98.4, but decided to upgrade to the latest 1.117.0. Upon upgrading, my VSCode Intellisense is very slow in both applications, but not in any of the other applications or packages in the monorepo. Both applications extend from this base tsconfig.json packages/tsconfig/tanstack.json
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"incremental": true,
"isolatedModules": true,
"jsx": "react-jsx",
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"module": "ESNext",
"moduleResolution": "Bundler",
"noEmit": true,
"noUncheckedIndexedAccess": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"strict": true,
"target": "ESNext",
"tsBuildInfoFile": ".tsbuildinfo"
}
}
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"incremental": true,
"isolatedModules": true,
"jsx": "react-jsx",
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"module": "ESNext",
"moduleResolution": "Bundler",
"noEmit": true,
"noUncheckedIndexedAccess": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"strict": true,
"target": "ESNext",
"tsBuildInfoFile": ".tsbuildinfo"
}
}
and then have tsconfig.json that are structured as
{
"extends": "@internal/tsconfig/tanstack.json",
"compilerOptions": {
"baseUrl": ".",
"paths": {
"~/*": [
"./app/*"
]
}
},
"include": [
"**/*.ts",
"**/*.tsx"
],
"exclude": [
"node_modules",
"dist",
".turbo"
]
}
{
"extends": "@internal/tsconfig/tanstack.json",
"compilerOptions": {
"baseUrl": ".",
"paths": {
"~/*": [
"./app/*"
]
}
},
"include": [
"**/*.ts",
"**/*.tsx"
],
"exclude": [
"node_modules",
"dist",
".turbo"
]
}
1 Reply
stormy-gold
stormy-goldOP5mo ago
both applications package.json have this structure (excluded irrelevant packages for brevity)
{
"name": "tanstack-app",
"version": "0.0.0",
"private": true,
"type": "module",
"scripts": {
"build": "vinxi build",
"check": "tsc",
"dev": "vinxi dev --port 3006",
"lint": "eslint . --fix",
"start": "vinxi start",
"test": "vitest --run"
},
"dependencies": {
"@lukemorales/query-key-factory": "^1.3.4",
"@tanstack/react-form": "^0.41.3",
"@tanstack/react-query": "^5.65.1",
"@tanstack/react-query-devtools": "^5.65.1",
"@tanstack/react-router": "1.117.0",
"@tanstack/react-router-with-query": "1.117.0",
"@tanstack/react-table": "^8.20.6",
"@tanstack/router-devtools": "1.117.0",
"@tanstack/react-start": "1.117.0",
"@tiptap/react": "^2.11.5",
"@tiptap/starter-kit": "^2.11.5",
"@ts-rest/react-query": "^3.51.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"vinxi": "^0.5.3",
},
"devDependencies": {
"@expanse/tsconfig": "workspace:*",
"@tanstack/eslint-plugin-router": "1.115.0",
"@tanstack/router-plugin": "1.117.0",
"@ts-rest/core": "^3.51.0",
"@types/react": "^19.0.8",
"@types/react-dom": "^19.0.3",
"@vitejs/plugin-react": "^4.4.1",
"vite": "^6.3.2",
"vite-tsconfig-paths": "^5.1.4"
},
"engines": {
"node": "22"
}
}
{
"name": "tanstack-app",
"version": "0.0.0",
"private": true,
"type": "module",
"scripts": {
"build": "vinxi build",
"check": "tsc",
"dev": "vinxi dev --port 3006",
"lint": "eslint . --fix",
"start": "vinxi start",
"test": "vitest --run"
},
"dependencies": {
"@lukemorales/query-key-factory": "^1.3.4",
"@tanstack/react-form": "^0.41.3",
"@tanstack/react-query": "^5.65.1",
"@tanstack/react-query-devtools": "^5.65.1",
"@tanstack/react-router": "1.117.0",
"@tanstack/react-router-with-query": "1.117.0",
"@tanstack/react-table": "^8.20.6",
"@tanstack/router-devtools": "1.117.0",
"@tanstack/react-start": "1.117.0",
"@tiptap/react": "^2.11.5",
"@tiptap/starter-kit": "^2.11.5",
"@ts-rest/react-query": "^3.51.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"vinxi": "^0.5.3",
},
"devDependencies": {
"@expanse/tsconfig": "workspace:*",
"@tanstack/eslint-plugin-router": "1.115.0",
"@tanstack/router-plugin": "1.117.0",
"@ts-rest/core": "^3.51.0",
"@types/react": "^19.0.8",
"@types/react-dom": "^19.0.3",
"@vitejs/plugin-react": "^4.4.1",
"vite": "^6.3.2",
"vite-tsconfig-paths": "^5.1.4"
},
"engines": {
"node": "22"
}
}
I can definitively say that VSCode Intellisense works fast & as expected on the previous TanStack Start/Router package versions (1.98.4) and all other packages/applications have Intellisense working as expected. It is just the two applications that use TanStack Start/Router that result in a slow Intellisense. What I've tried so far: 1. Being more explicit with the files/directories in the include and exclude entries in all my tsconfig.json files in the monorepo 2. Bumping up the VSCode TypeScript server memory to 8192. 3. Explicitly ignoring node_modules, dist, etc. within VSCode settings 4. Restarting my computer Any help would be appreciated, thanks in advance! also for what it's worth, i ran npx tsc --extendedDiagnostics within one of the TanStack Start apps on my main branch on v1.98.4
Files: 2571
Lines of Library: 41276
Lines of Definitions: 277307
Lines of TypeScript: 28668
Lines of JavaScript: 0
Lines of JSON: 0
Lines of Other: 0
Identifiers: 467015
Symbols: 855743
Types: 312589
Instantiations: 5639042
Memory used: 1140170K
Assignability cache size: 357698
Identity cache size: 7027
Subtype cache size: 2856
Strict subtype cache size: 5954
I/O Read time: 0.31s
Parse time: 0.56s
ResolveModule time: 0.41s
ResolveTypeReference time: 0.01s
ResolveLibrary time: 0.01s
Program time: 1.48s
Bind time: 0.28s
Check time: 8.28s
printTime time: 0.00s
Emit time: 0.00s
Total time: 10.04s
Files: 2571
Lines of Library: 41276
Lines of Definitions: 277307
Lines of TypeScript: 28668
Lines of JavaScript: 0
Lines of JSON: 0
Lines of Other: 0
Identifiers: 467015
Symbols: 855743
Types: 312589
Instantiations: 5639042
Memory used: 1140170K
Assignability cache size: 357698
Identity cache size: 7027
Subtype cache size: 2856
Strict subtype cache size: 5954
I/O Read time: 0.31s
Parse time: 0.56s
ResolveModule time: 0.41s
ResolveTypeReference time: 0.01s
ResolveLibrary time: 0.01s
Program time: 1.48s
Bind time: 0.28s
Check time: 8.28s
printTime time: 0.00s
Emit time: 0.00s
Total time: 10.04s
and then again on my upgrade branch on v1.117.0, where all I did was upgrade the TanStack Router/Start packages
Files: 2631
Lines of Library: 41276
Lines of Definitions: 286545
Lines of TypeScript: 28668
Lines of JavaScript: 0
Lines of JSON: 0
Lines of Other: 0
Identifiers: 498775
Symbols: 2215767
Types: 1243931
Instantiations: 10830326
Memory used: 2416712K
Assignability cache size: 360933
Identity cache size: 9071
Subtype cache size: 2862
Strict subtype cache size: 5952
I/O Read time: 0.31s
Parse time: 0.57s
ResolveModule time: 0.41s
ResolveTypeReference time: 0.00s
ResolveLibrary time: 0.01s
Program time: 1.47s
Bind time: 0.30s
Check time: 26.04s
printTime time: 0.00s
Emit time: 0.00s
Total time: 27.81s
Files: 2631
Lines of Library: 41276
Lines of Definitions: 286545
Lines of TypeScript: 28668
Lines of JavaScript: 0
Lines of JSON: 0
Lines of Other: 0
Identifiers: 498775
Symbols: 2215767
Types: 1243931
Instantiations: 10830326
Memory used: 2416712K
Assignability cache size: 360933
Identity cache size: 9071
Subtype cache size: 2862
Strict subtype cache size: 5952
I/O Read time: 0.31s
Parse time: 0.57s
ResolveModule time: 0.41s
ResolveTypeReference time: 0.00s
ResolveLibrary time: 0.01s
Program time: 1.47s
Bind time: 0.30s
Check time: 26.04s
printTime time: 0.00s
Emit time: 0.00s
Total time: 27.81s
so it seems like "Symbols", "Types", and "Instantations" all 2x+'d, which made the check time just about 3x wow I'm so upset -- turns out the solution was to delete pnpm-lock.yaml in the monorepo root and then pnpm i to reinstall it. I already had a script that deleted & replaced all node_modules, deleted all build/dist/output directories and metadata .vinxi/.turbo directories. hopefully this helps someone else in the future.

Did you find this page helpful?