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