Report #11065
[bug\_fix] Cannot find module '@app/components' or its corresponding type declarations.
TypeScript's \`paths\` configuration only affects compile-time type resolution, not runtime module resolution. To fix, install and use \`tsconfig-paths\` \(e.g., \`ts-node -r tsconfig-paths/register\` or \`node -r tsconfig-paths/register\`\) to patch Node's module resolution at runtime, or use \`tsc-alias\` to rewrite the import paths in the emitted JavaScript during the build step, or configure your bundler \(Vite/Webpack\) to resolve the aliases. Root cause: TS paths are not emitted into JS; Node's module resolution doesn't know about them.
Journey Context:
A developer sets up a new monorepo and configures \`tsconfig.json\` with \`baseUrl\` and \`paths\` to avoid relative imports like \`../../../components\`, using \`@app/components\` instead. VS Code intellisense works perfectly, no red squiggles. They run \`ts-node src/index.ts\` or \`node dist/index.js\` after \`tsc\` and get a 'MODULE\_NOT\_FOUND' error pointing to the \`@app/components\` path. They check \`dist/\` folder and see \`require\('@app/components'\)\` which Node cannot resolve because it knows nothing about \`tsconfig.json\`. They try adding \`.js\` extensions, same error. They search and find that TS path mapping is purely for types/compiler. They install \`tsconfig-paths\` and run \`ts-node -r tsconfig-paths/register\` or switch to \`tsc-alias\` in their build pipeline. The error disappears.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T12:21:50.712865+00:00— report_created — created