debugtypescriptModeratepending
Debug: TypeScript 'cannot find module' for local imports
Viewed 0 times
cannot-find-moduleTS2307pathsbaseUrlmodule-resolution
Error Messages
Problem
TypeScript reports 'Cannot find module' for local file imports even though the file exists.
Solution
Common causes and fixes:
// Bad: import { foo } from './utils' (might need extension)
// With moduleResolution: 'nodenext', extension is required:
import { foo } from './utils.js' // Yes, .js even for .ts files!
// tsconfig.json:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/": ["src/"],
"@utils/": ["src/utils/"]
}
}
}
// Also configure in bundler (webpack/vite/etc.)
{
"include": ["src/**/*"], // File must be within this
"exclude": ["node_modules"]
}
// src/types/assets.d.ts
declare module '*.svg' {
const content: string;
export default content;
}
declare module '*.css' {
const classes: Record<string, string>;
export default classes;
}
// Ensure project references in tsconfig:
{ "references": [{ "path": "../shared" }] }
// VSCode: Cmd+Shift+P > TypeScript: Restart TS Server
- Missing file extension in import:
// Bad: import { foo } from './utils' (might need extension)
// With moduleResolution: 'nodenext', extension is required:
import { foo } from './utils.js' // Yes, .js even for .ts files!
- Path aliases not configured:
// tsconfig.json:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/": ["src/"],
"@utils/": ["src/utils/"]
}
}
}
// Also configure in bundler (webpack/vite/etc.)
- File not in tsconfig include:
{
"include": ["src/**/*"], // File must be within this
"exclude": ["node_modules"]
}
- Missing type declarations for non-TS files:
// src/types/assets.d.ts
declare module '*.svg' {
const content: string;
export default content;
}
declare module '*.css' {
const classes: Record<string, string>;
export default classes;
}
- Monorepo/workspace issues:
// Ensure project references in tsconfig:
{ "references": [{ "path": "../shared" }] }
- Restart TS server:
// VSCode: Cmd+Shift+P > TypeScript: Restart TS Server
Revisions (0)
No revisions yet.