reactjs - Typescript Modul ikke fundet Kan ikke løse


Jeg bygger en React + TypeScript-app, hvor jeg har oprettet et modul med interfaces, som bruges overalt i projektets klasser. Mit IDE genkender disse interfaces fint, men webpack sender altid følgende fejl. Jeg har prøvet forskellige ting, men kan ikke få den til at forsvinde.

Enhver hjælp ville blive meget værdsat

ERROR in ./assets/src/Pages/Login.tsx Module not found: Error: Can't resolve 'seeyouftp' in 'var/www/app/assets/src/Pages'
 @ ./assets/src/Pages/Login.tsx 43:18-38
 @ ./assets/src/Config/App.tsx
 @ ./assets/entries/bundle.js

Min definitionsfil er her

|— definitions
     |— types.d.ts
|— entries
|— fonts
|— less
|— src

Uddrag af min definitionsfil

declare module 'seeyouftp' {
  interface User {
    admin: boolean;
    roles: string[];
    username: string;
  }

  enum AuthStates {
    success = 'success',
    error = 'error'
  }
tsconfig.json
{
  "compilerOptions": {
    "allowJs": true,
    "allowUnreachableCode": false,
    "baseUrl": "./assets",
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "jsx": "react",
    "lib": [
      "dom",
      "es2019",
      "esnext"
    ],
    "module": "commonjs",
    "moduleResolution": "node",
    "noImplicitAny": true,
    "noImplicitReturns": true,
    "outDir": "./dist/",
    "resolveJsonModule": true,
    "skipDefaultLibCheck": true,
    "sourceMap": true,
    "strictPropertyInitialization": false,
    "strictNullChecks": true,
    "target": "es5",
    "typeRoots": [
      "./assets/definitions/types.d.ts",
      "./node_modules/@types"
    ],
    "types": [
      "node"
    ]
  },
  "include": [
    "./assets/src/**/*",
    "./assets/definitions/**/*"
  ],
  "exclude": [
    "node_modules"
  ]
}

Jeg importerer de oprettede interfaces på denne måde:

import { Item, PlayableMedia } from 'seeyouftp';

Svar #1

Fejlmeddelelsen var faktisk meget vildledende og ligner en TypeScript-fejl. Det ser ud til, at enums ikke kan eksporteres direkte; det ser ud til at være nødvendigt at bruge en const for at kunne eksportere dem korrekt.

Så jeg ændrede min enum-erklæring på denne måde

declare module 'seeyouftp' {

  // exporting a const instead of 
  export const enum AuthStates {
    success = 'success',
    error = 'error'
  }
}

Alt fungerer nu, men den fejlmeddelelse er meget, meget dårlig og tidskrævende

Relaterede artikler