Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

web-bundle: a redirected remote module resolves its imports against the requested URL

Abierto Apto para principiantes
#95 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
72/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript, typescript
Área
frontend

Línea de trabajo

Empieza en loadRemoteModule en apps/web-bundle/src/loader.js, donde los imports hijos se resuelven con new URL(spec, url) contra la URL solicitada y no contra la respuesta. Revisa la búsqueda en remoteCache y la respuesta del fetch, y confirma cómo se gestiona el fallback de .ts. Está listo cuando los imports relativos se resuelven contra la URL final de la respuesta y la caché usa esa URL como clave, de modo que una redirección y su destino se carguen una sola vez.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug

What happens

If a remote plugin's module is served by redirect, the browser resolves that module's relative imports against the URL that was requested rather than the one that answered, so they fetch the wrong paths.

Why

loadRemoteModule in apps/web-bundle/src/loader.js resolves children with new URL(spec, url), where url is the URL it asked for (or its .ts fallback), never res.url. A redirect is common on CDNs, e.g. unpkg answers https://unpkg.com/lit@3?module from https://unpkg.com/[email protected]/index.js?module=, and ./x.js from that file belongs under [email protected]/, not at the host root.

remoteCache is also keyed by the requested URL, so two URLs that redirect to one module load it twice.

Notes toward a fix

Resolve children against res.url, and key the cache by it, so a redirect and its target share one module. This matches how the browser treats a module it loads natively, and how Node resolves a URL import on the remote-url-identity branch.

Raw GitHub, the usual plugin host, does not redirect file requests, so this mostly affects plugins served from a CDN.

Found while reviewing #93.

Lenguaje dominante
TypeScript
Estrellas
5
Forks
2
Merge medio
1 d 2 h
PR fusionados (30 d)
12

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de MatAtBread/matbot

Todos los issues de MatAtBread/matbot

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.