node.js - Kan inte hitta modulfel med TypeScript i Vercel-projekt
Jag arbetar på ett TypeScript-projekt som är distribuerat på Vercel och stöter på ett problem där modulen 'stateStorage' inte kan hittas när den importeras från en annan fil i samma katalog. Här är felet jag får när jag kör vercel dev:
Error: Cannot find module '/Users/aidan/work/real-estate/forecasa-serverless-functions-express/api/stateStorage' imported from /Users/aidan/work/real-estate/forecasa-serverless-functions-express/api/companyContact.ts
Projekstruktur:
/.
/api
- companyContact.ts
- stateStorage.ts
Kod :
companyContact.tsimport { getState, setState } from './stateStorage';
stateStorage.tsexport const getState = () => { ... };
export const setState = () => { ... };
tsconfig.json{
"compilerOptions": {
"module": "ESNext",
"target": "ESNext",
"moduleResolution": "node",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true
},
"include": ["api/**/*", "api/stateStorage.ts"],
"exclude": ["node_modules"]
}
Försök att lösa:
- Verifierad fils existens: Jag bekräftade att
stateStorage.tsfinns iapi-katalogen och att filnamnet är stavat korrekt. - Kontrollerat importuttalande: Jag granskade importuttalandet i
companyContact.tsför att säkerställa att det använder rätt relativ sökväg (./stateStorage). - Granskad TypeScript-konfiguration: Jag granskade
tsconfig.jsonför att säkerställa att inställningarna förmoduleResolution,esModuleInteropoch andra relevanta alternativ är korrekt konfigurerade för en Node.js-miljö. - Lokalt testande: Jag försökte importera
stateStorage.tsi en enkel TypeScript-fil lokalt för att se om problemet var specifikt för Vercel-miljön eller min projektuppsättning.
Vad jag förväntade mig skulle hända:
Jag förväntade mig att modulen stateStorage skulle importeras framgångsrikt till companyContact.ts utan några upplösningsfel, med tanke på att båda filerna är i samma katalog och TypeScript-konfigurationen är inställd för att hantera sådana importer.
Vad som faktiskt hände:
Trots att filerna var korrekt placerade och importvägarna verkade vara korrekta, fick jag ett runtime-fel som angav att modulen stateStorage inte kunde hittas när jag körde vercel dev. Detta fel kvarstår specifikt i Vercel-distributionsmiljön, vilket tyder på att problemet kan vara relaterat till hur vägar löses eller hanteras i den miljön.
Vad kan orsaka detta modulupplösningsfel, och hur kan jag åtgärda det?
Svar #1
Jag tror att om du ändrar din import från
import { getState, setState } from './stateStorage';
till
import { getState, setState } from './stateStorage.ts';
det kan fungera.
