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.ts
import { getState, setState } from './stateStorage';
stateStorage.ts
export 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:

  1. Verifierad fils existens: Jag bekräftade att stateStorage.ts finns i api-katalogen och att filnamnet är stavat korrekt.
  2. Kontrollerat importuttalande: Jag granskade importuttalandet i companyContact.ts för att säkerställa att det använder rätt relativ sökväg (./stateStorage).
  3. Granskad TypeScript-konfiguration: Jag granskade tsconfig.json för att säkerställa att inställningarna för moduleResolution, esModuleInterop och andra relevanta alternativ är korrekt konfigurerade för en Node.js-miljö.
  4. Lokalt testande: Jag försökte importera stateStorage.ts i 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.