node.js - Vercel no puede encontrar el módulo
Estoy implementando en Vercel usando la CLI y a través de git y mis importaciones relativas siempre resultan en un
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
Aquí está la línea que da error:
import { Card } from "../components/card";
Aquí están las partes importantes de la estructura del archivo:
.
├── 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
Aquí está el vercel.json
{
"version": 2,
"rewrites": [{ "source": "/(.*)", "destination": "/api/$1" }]
}
He intentado renombrar todos mis archivos a minúsculas sin éxito.
Respuesta #1
Me enfrenté al mismo problema donde el registro de Vercel decía que un módulo (.ts) no podía ser importado desde otro módulo (.js). La forma en que lo solucioné fue renombrando cualquier importación de módulo a .js, aunque el archivo en sí tenga una extensión .ts.
algo así
Respuesta #2
Parece que estás exportando tu tarjeta como predeterminada.
Si tienes algo como export default Card, necesitas eliminar las llaves de la declaración import.
Import Card from ...
