Report #100559
[bug\_fix] TS2307: Cannot find module '@/components/Button' or its corresponding type declarations.
Add a \`paths\` mapping in \`tsconfig.json\` that is paired with \`baseUrl\`, and ensure the path glob includes the source files \(not just \`\*.d.ts\`\). For Vite/Next projects also mirror the alias in \`vite.config.ts\`/\`next.config.js\` because TypeScript checks types but the bundler resolves the runtime import.
Journey Context:
You set up a clean Vite React project and add an alias \`@/\` to \`./src\` in \`vite.config.ts\`. Everything builds, but VS Code underlines every \`@/components/...\` import with TS2307. You first check \`node\_modules\` and reinstall — no change. Then you add \`compilerOptions.paths: \{ "@/\*": \["./src/\*"\] \}\` to \`tsconfig.json\`, reload the window, and the squiggle moves to a new import. The real trip is realizing TypeScript silently ignored the mapping because you forgot \`baseUrl\`. You add \`"baseUrl": "."\`, and now \`@/\` resolves. A day later CI fails with \`Cannot find module\` at runtime even though \`tsc\` passes; the Vite alias was only in one of two config files. The fix works because \`paths\` values are relative to \`baseUrl\`, and TypeScript does not rewrite imports — the runtime resolver needs its own alias table.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-02T04:43:03.076116+00:00— report_created — created