Tengo un problema para obtener una lista de directorios en Next.js en Netlify. Funciona bien en localhost , pero cuando implemento el sitio en Netlify, aparece este error:
{ "errorType": "Runtime.UnhandledPromiseRejection", "errorMessage": "Error: ENOENT: no such file or directory, scandir '/opt/build/repo/storage/videos/'", "trace": [ "Runtime.UnhandledPromiseRejection: Error: ENOENT: no such file or directory, scandir '/opt/build/repo/storage/videos/'", " at process.<anonymous> (/var/runtime/index.js:35:15)", " at process.emit (events.js:314:20)", " at processPromiseRejections (internal/process/promises.js:209:33)", " at processTicksAndRejections (internal/process/task_queues.js:98:32)" ] } Este es mi next.config.js :
module.exports = { serverRuntimeConfig: { PROJECT_ROOT: __dirname }, target: 'experimental-serverless-trace' }; Estas son mis pages/index.js :
import fs from 'fs'; import path from 'path'; import { project_root } from '@config/app'; ... export async function getServerSideProps() { const videosPath = path.join(project_root, './storage/videos/'); fs.readdirSync(videosPath).forEach(video => { // Do stuff with a path... }); ... } Y esto es config/app.js :
import getConfig from 'next/config'; const { serverRuntimeConfig } = getConfig(); export const project_root = serverRuntimeConfig.PROJECT_ROOT; Soy nuevo en Next.js y Netlify, así que no estoy seguro de cuál es el problema. Veo que la ruta /opt/build/repo/storage/videos/ que es lectura readdirSync no es válida y probablemente debería ser como var/runtime/storage/videos/ , pero no sé cómo solucionarlo y hacer que funcione tanto Netlify como localhost.
PD: Sí, tengo archivos en la carpeta de storage/videos , así como en git, y en Netlify instalé estos complementos para el proyecto: 