Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

241
Vistas
Módulo no encontrado: no se puede resolver 'fs' en la aplicación Next.js

No se puede identificar lo que sucede en mi aplicación next.js. Como fs es un módulo de sistema de archivos predeterminado de nodejs. Está dando el error de módulo no encontrado .

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
10 Respuestas
Responde la pregunta

0

Es posible que el módulo que está intentando implementar no deba ejecutarse en un navegador. Es decir, es solo del lado del servidor.

over 4 years ago · Santiago Trujillo Denunciar

0

fs , path u otros módulos nativos del nodo solo se pueden usar dentro del código del lado del servidor, como las funciones "getServerSide". Si intenta usarlo en el cliente, obtiene un error incluso si solo consola.regístrelo. Ese console.log también debería ejecutarse dentro de las funciones del lado del servidor.

Cuando importa "fs" y lo usa en el lado del servidor, next.js es lo suficientemente inteligente como para ver que lo usa en el lado del servidor, por lo que no agregará esa importación al paquete del cliente.

Uno de los paquetes que utilicé me estaba dando este error, lo arreglé con

 module.exports = { webpack: (config, { isServer }) => { if (!isServer) { config.resolve.fallback.fs = false } return config }, }

pero esto estaba lanzando una advertencia en la terminal:

 "Critical dependency: require function is used in a way in which dependencies cannot be statically extracted"

Luego traté de cargar el módulo de nodo en el navegador. Copié el "min.js" del módulo de nodo de node_modules y lo coloqué en "public/js/myPackage.js" y lo cargué con Script

 export default function BaseLayout({children}) { return ( <> <Script // this in public folder src="/js/myPackage.js" // this means this script will be loaded first strategy="beforeInteractive" /> </> ) }

Este paquete se adjuntó al objeto de window y en index.js del código fuente de node_modules:

 if (typeof window !== "undefined") { window.TruffleContract = contract; }

Entonces pude acceder a este script como window.TruffleContract . PERO esta no era una manera eficiente.

over 4 years ago · Santiago Trujillo Denunciar

0

Si trato de usar fs-extra en Next.js, esto funcionó para mí

 module.exports = { webpack: (config) => { config.resolve.fallback = { fs: false, path: false, stream: false, constants: false }; } }
over 4 years ago · Santiago Trujillo Denunciar

0

Pasé horas en esto y la solución también está aquí en Stackoverflow pero en un problema diferente -> https://stackoverflow.com/a/67478653/17562602

Por la presente, pedí permiso a MOD para volver a compartir esto, ya que este problema es el primero que aparece en Google y probablemente más y más personas tropiecen con el mismo problema que yo, así que intentaré ahorrarles algo de sudor.

Entonces, debe agregar esto en su next.config.js

 module.exports = { future: { webpack5: true, // by default, if you customize webpack config, they switch back to version 4. // Looks like backward compatibility approach. }, webpack(config) { config.resolve.fallback = { ...config.resolve.fallback, // if you miss it, all the other options in fallback, specified // by next.js will be dropped. Doesn't make much sense, but how it is fs: false, // the solution }; return config; }, };

Funciona como un encanto para mí.

over 4 years ago · Santiago Trujillo Denunciar

0

Recibí este error en mi aplicación NextJS porque me faltaba export en

 export function getStaticProps()
over 4 years ago · Santiago Trujillo Denunciar

0

Tuve el mismo problema cuando estaba tratando de usar babel.

Para mí esto funcionó:

#agregue un archivo .babelrc a la raíz del proyecto y defina ajustes preestablecidos y complementos (en mi caso, tuve algunos problemas con las macros de babel, así que las definí)

 { "presets": ["next/babel"], "plugins": ["macros"] }

después de eso, apague su servidor y ejecútelo de nuevo

over 4 years ago · Santiago Trujillo Denunciar

0

Tuve este problema exacto. Mi problema era que estaba importando tipos que había declarado en un archivo types.d.ts .

Lo estaba importando así, gracias al autocompletado proporcionado por VSCode.

 import {CUSTOM_TYPE} from './types'

Debería haber sido así:

 import {CUSTOM_TYPE} from './types.d'

En mi caso, creo que el .d era innecesario, así que terminé eliminándolo por completo y cambié el nombre de mi archivo a types.ts .

Por extraño que parezca, se estaba importando directamente a index.tsx sin problemas, pero cualquier archivo/función de ayuda dentro del directorio src me daría errores.

over 4 years ago · Santiago Trujillo Denunciar

0

Para mí, el problema era la versión anterior de node.js instalada. Requiere node.js versión 14 y superior. La solución fue ir a la página web de node.js, descargar la última versión y simplemente instalarla. Y luego vuelva a ejecutar el proyecto. ¡Todo funcionó!

over 4 years ago · Santiago Trujillo Denunciar

0

Si usa fs , asegúrese de que sea solo dentro de getInitialProps o getServerSideProps . (cualquier cosa incluye renderizado del lado del servidor).

Es posible que también deba crear un archivo next.config.js con el siguiente contenido para que se cree el paquete del cliente:

Para webpack4

 module.exports = { webpack: (config, { isServer }) => { // Fixes npm packages that depend on `fs` module if (!isServer) { config.node = { fs: 'empty' } } return config } }

Para webpack5

 module.exports = { webpack5: true, webpack: (config) => { config.resolve.fallback = { fs: false }; return config; }, };

Nota: para otros módulos como path , puede agregar múltiples argumentos como

 { fs: false, path: false }
over 4 years ago · Santiago Trujillo Denunciar

0

Para mí, borrando el caché npm cache clean -f

y luego la actualización de la versión del nodo a la última versión estable (14.17.0) funcionó

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda