Estoy usando Netlify CMS. Quiero importar todas las diapositivas de un carrusel a mi componente. Hice una colección llamada slider y agregué algunas diapositivas. Eso creó dos archivos de rebajas (uno para cada diapositiva) en formato public/content/slider/
. Me gustaría importarlos todos en un objeto iterable para poder construir el carrusel.
Debido a que tengo un cargador de paquete web configurado para archivos de descuento, puedo importar un solo archivo de descuento sin problema, como este:
import post from '../public/content/posts/[post name].md
Pero cuando trato de usar require.context, require-context o import fs
, no funciona. Así que decido intentar requerir esas librerías desde adentro getStaticProps
. Pero __dirname
in getStaticProps
is /
, la raíz del sistema de archivos de mi computadora.
Todos los getStaticProps
ejemplos utilizan la obtención de datos. Me falta algo de información. ¿Cómo puedo importar todos los archivos de rebajas en la /slides/
carpeta?
Solución del problema
Este es un problema conocido en Next.js, __dirname
se resuelve incorrectamente en /
: debe usar en su process.cwd()
lugar.
De la documentación de los archivos de lectura de Next.js:
Los archivos se pueden leer directamente desde el sistema de archivos en getStaticProps
.
Para hacerlo, debe obtener la ruta completa de un archivo.
Dado que Next.js compila su código en un directorio separado que no puede usar __dirname
, ya que la ruta que devolverá será diferente del directorio de páginas.
En su lugar, puede usar process.cwd()
which le da el directorio donde se está ejecutando Next.js.
No hay comentarios.:
Publicar un comentario