Framework - Next.js
Configure TypeScript for a Next.js app so the compiler matches the bundler that builds your project.
Why Use This Preset?
- Sets bundler-style module resolution so imports resolve the way Next.js expects.
- Includes DOM libraries so browser globals and React component code type-check correctly.
- Enforces isolated modules so each file transpiles independently under the bundler.
- Disables TypeScript emit so Next.js owns output and
tscstays a type-checker. - Layers cleanly after
dx-essentialsanddx-strictso framework settings stay in their own reviewable layer.
Usage
Add the preset to the extends array of your tsconfig.json, after the essentials and strict layers.
tsconfig.json
{
"extends": [
"@cbnventures/nova/presets/tsconfig/dx-essentials.json",
"@cbnventures/nova/presets/tsconfig/dx-strict.json",
"@cbnventures/nova/presets/tsconfig/fw-nextjs.json"
],
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@/*": [
"./src/*"
]
}
},
"include": [
"./next-env.d.ts",
"./src/**/*"
],
"exclude": [
"./.next/**",
"./node_modules/**"
]
}
What This Preset Configures
This preset sets the following compilerOptions.
| Setting | Value | Description |
|---|---|---|
isolatedModules | true | Enforces per-file compilation so the bundler can transpile each file independently. |
lib | ["DOM", "DOM.Iterable", "ESNext"] | Provides browser DOM globals plus the latest ECMAScript APIs. |
module | "ESNext" | Emits modern ECMAScript module syntax for the bundler to consume. |
moduleResolution | "Bundler" | Resolves imports the way a bundler does, matching Next.js. |
noEmit | true | Stops tsc from writing JavaScript, leaving output to Next.js. |
Related
- Review the layering order in TSConfig Best Practices.
- See how presets compose end to end in the Presets Overview.