compilerOptions.baseUrl in tsconfig.json is not working
I have the following baseUrl setting in the tsconfig.json in a nextjs project.
{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"baseUrl": ".",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"strictNullChecks": true
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}
But TypeScript Native Preview Language server report an error Cannot find module 'app/sitemap' or its corresponding type declarations.ts(2307)
Howerver if I checkout TypeScript Language server, it is working.
@typescript/native-preview: "7.0.0-dev.20250523.1",
Extension Version: 0.20250523.1
baseUrl is unsupported. #474
You should be able to do this same thing with paths, or switch to package.json import maps.
@jakebailey I modified baseUrl with paths in tsconfig.
{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"paths": {
"app/*": ["./app/*"]
},
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"strictNullChecks": true
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}
It is working in file app\robots.ts.
But it is not working in file app\blog\[slug]\page.tsx. Is tsgo not support dynamic segment [slug] as a file name?
I have no idea what would provide those imports. Does this code compile when you run tsc?
The baseUrl thing is expected. The [slug] bug was fixed by #969.