Estoy usando la funcionalidad de importación global de Vite para traer varios archivos de rebajas a una página de SvelteKit:
<script context="module"> export async function load() { const employmentsMeta = import.meta.globEager('./employments/*.md'); return { props: { employmentsMeta: employmentsMeta } }; } </script> <script> export let employmentsMeta; </script> Esto me funciona bien para acceder a los metadatos a través employmentsMeta[Object.keys(employmentsMeta)[0]]['metadata'] . Sin embargo, tengo dificultades para acceder al contenido real del archivo de rebajas; no importa cómo intente acceder a él, parece que vuelve como indefinido.
Por ejemplo, console.log(employmentsMeta[Object.keys(employmentsMeta)[0]['default']]) devuelve indefinido, a pesar de que entiendo que hay un objeto de exportación predeterminado allí y que el acceso a los metadatos funciona según lo previsto.
¿Cómo accedo a la carga útil/cuerpo de la rebaja importada?
Tengo un caso de uso similar, con archivos de descuento en SvelteKit como publicaciones de blog.
En su ejemplo, obtendría el contenido del archivo como html de esta manera:
const contents = employmentsMeta[Object.keys(employmentsMeta)[0]].default.render(); contents aquí es un objeto como este:
{ html: '/* a string with the markdown content parsed as html */', css: { code: '', map: null }, head: '', }Supongo que tienes que usar mdsvex para que ocurra la conversión md->html.
EDITAR: debo mencionar que hago esto en un punto final ([slug].json.js), devuelvo los resultados y los obtengo en la ruta, ya que hacerlo en la función de load arrojaba un error ( ...default.render is not a function ) del lado del cliente.