typescript - Hur hanterar jag monorepo tsconfig.json för att skapa dist-mapp i varje arbetsytamapp


Jag skapar precis ett monorepo med denna struktur

+ packages
  + packages-A
    + src
    - tsconfig.json
    - package.json
  + packages-B
    + src
    - tsconfig.json
    - package.json
- package.json
- tsconfig.json

Jag har ställt in tsconfig.json i rootDir så här:

{
  "exclude": [
    "node_modules/*",
    "example/*"
  ],
  "compilerOptions": {
    "allowJs": true,
    "module": "es6",
    "declaration": true,
    "skipLibCheck": true,
    "noImplicitAny": true,
    "esModuleInterop": true,
    "jsx": "react",
    "lib": [
      "esnext"
    ],
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "strict": true,
    "target": "esnext",
  }
}

och jag satte tsconfig.json i varje inbäddad package-mapp så här:

{
  "extends": "../../tsconfig.json",
  "include": [
    "src/**/*",
  ],
  "compilerOptions": {
    "outDir": "./dist",
  }
}

med denna setup, varje gång jag kör tsc, genereras .d.ts i package/**/src-mappen och alla mina filer i package/**/src formateras.

Jag förväntar mig att varje gång jag kör tsc, så har jag en dist-mapp i package/**/ som skapar .d.ts, så kan någon hjälpa mig vilken konfiguration jag bör ändra för att få det att fungera som jag förväntar mig?

Svar #1

Försök att lägga till detta i varje pakets tsconfig och exkludera även dist

"compilerOptions": {
    "rootDir": "src",
    "outDir": "dist",
    "composite": true
  },
  "exclude": [
    "dist"
  ]