Búsqueda de sitios web

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 ...

Artículos relacionados