typescript - Kan ikke finne typedeklarasjon i yarn-arbeidsrom common-pakker


Trenger litt hjelp med å deklarere globale moduler ved bruk av yarn workspaces. Klarer ikke å finne ut hvor jeg skal legge deklarasjonene slik at de fungerer som forventet

Filstruktur:

root/
├── app/
├── common/
│   ├── assets/
│   │   ├── example.svg
│   ├── components/
│       ├── Icon/
│           ├── Icon.tsx
├── global.d.ts
├── package.json
├── tsconfig.json

global.d.ts

declare module '*.png';
declare module '*.svg?react';
declare module '*.json';

tsconfig.json

{
  "compilerOptions": {
    "declaration": true,
    "paths": {
      "@common/*": ["./common/*"]
    },
    "typeRoots": ["./node_modules/@types"]
  },
  "exclude": ["node_modules"],
  "include": ["**/vite.config.mts", "**/*.d.ts", "**/*.ts", "**/*.tsx"]
}

package.json

{
  "name": "frontend-monorepo",
  "version": "1.0.0",
  "packageManager": "[email ",
  "private": true,
  "types": "./global.d.ts",
  "workspaces": [
    "app",
    "common/*"
  ],
}

Importering av svg for et eksempel gir en feil:

  import Example from '@common/assets/example.svg?react';

  ERROR: Cannot find module '@common/assets/example.svg?react' or its corresponding type declarations.ts(2307)

Merk: UI fungerer som forventet. Importering av andre komponenter fra @common fungerer som forventet. Bare problemer med deklarasjoner når du importerer fra svg, png og andre utvidelser

REDIGER :

Fant løsningen. For hver pakke opprettet jeg en egen *.d.ts-deklarasjonsfil og en egen tsconfig.json. Inne i tsconfig la jeg til "include": ["**/*.d.ts"]

Strukturen vil se slik ut, så hver pakke må ha sin egen typedeklarasjon og tsconfig-fil:

root/
├── app/
├── common/
│   ├── assets/
│   │   ├── example.svg
│   │   ├── assets.d.ts
│   │   ├── tsconfig.json
│   ├── components/
│   │   ├── Icon/
│   │   │   ├── Icon.tsx
│   │   ├── components.d.ts
│   │   ├── tsconfig.json
├── package.json