Skip to main content

Framework - Docusaurus

Configure TypeScript for a Docusaurus site so the compiler matches the bundler that builds your docs.

Why Use This Preset?

  1. Sets bundler-style module resolution so imports resolve the way Docusaurus expects.
  2. Includes DOM libraries so browser globals and React component code type-check correctly.
  3. Preserves JSX so Docusaurus and its toolchain handle the transform, not tsc.
  4. Leaves output ownership to the selected role instead of mixing build policy into the framework layer.
  5. Layers cleanly after the role and runtime so framework settings stay in their own reviewable layer.

Usage

Add the preset after the essentials, strict, app-role, and browser-runtime layers.

tsconfig.json
json
{
  "extends": [
    "@cbnventures/nova/presets/tsconfig/dx-essentials.json",
    "@cbnventures/nova/presets/tsconfig/dx-strict.json",
    "@cbnventures/nova/presets/tsconfig/role-app.json",
    "@cbnventures/nova/presets/tsconfig/runtime-browser.json",
    "@cbnventures/nova/presets/tsconfig/fw-docusaurus.json"
  ],
  "compilerOptions": {
    "paths": {
      "@site/*": [
        "./*"
      ]
    }
  },
  "include": [
    "./src/**/*"
  ],
  "exclude": [
    "./.docusaurus/**",
    "./build/**",
    "./node_modules/**"
  ]
}

What This Preset Configures

This preset sets the following compilerOptions.

SettingValueDescription
isolatedModulestrueEnforces per-file compilation so the bundler can transpile each file independently.
jsx"preserve"Leaves JSX untouched so the Docusaurus toolchain performs the transform.
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 Docusaurus.