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
