node.js - Vercel kan inte hitta modul
Jag distribuerar till Vercel med CLI och genom git och mina relativa importeringar resulterar alltid i ett
2023-07-14T16:16:06.394Z undefined ERROR Error: Cannot find module '/var/task/components/card' imported from /var/task/api/top-tracks.js
at new NodeError (node:internal/errors:399:5)
at finalizeResolution (node:internal/modules/esm/resolve:331:11)
at moduleResolve (node:internal/modules/esm/resolve:994:10)
at moduleResolveWithNodePath (node:internal/modules/esm/resolve:938:12)
at defaultResolve (node:internal/modules/esm/resolve:1202:79)
at nextResolve (node:internal/modules/esm/loader:163:28)
at ESMLoader.resolve (node:internal/modules/esm/loader:838:30)
at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18)
at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:77:40)
at link (node:internal/modules/esm/module_job:76:36) {
code: 'ERR_MODULE_NOT_FOUND'
}
RequestId: 8994f047-0b25-4abb-b529-b9779fde07ce Error: Runtime exited with error: exit status 1
Runtime.ExitError
Här är raden som ger fel:
import { Card } from "../components/card";
Här är de viktiga delarna av filstrukturen:
.
├── api
│ ├── inf-artists.ts
│ ├── inf-playing.ts
│ ├── inf-tracks.ts
│ ├── now-playing.ts
│ └── top-tracks.ts
├── components
│ ├── 404.tsx
│ ├── card.tsx
│ ├── cardplayer.tsx
│ ├── nowplaying.tsx
│ ├── readmeimg.tsx
│ ├── text.tsx
│ ├── track.tsx
│ └── webpage.tsx
Här är vercel.json
{
"version": 2,
"rewrites": [{ "source": "/(.*)", "destination": "/api/$1" }]
}
Jag har försökt byta namn på alla mina filer till gemener utan framgång.
Svar #1
Jag mötte samma problem där vercel-loggen sa att en modul (.ts) inte kunde importeras från en annan modul (.js). Hur jag löste det var genom att byta namn på alla modulimporter till .js även om själva filen har en .ts-tillägg.
något sådant här
Svar #2
Det verkar som att du exporterar ditt kort som standard.
Om du har något som export default Card behöver du ta bort klamrar från import-satsen.
Import Card from ...
