Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

439
Views
Error de scripts de Next.js: no se puede encontrar el módulo '../../webpack-runtime.js'

Quiero crear un script RSS usando Next.js.

Así que puse un script en una subcarpeta dentro de la carpeta raíz scripts/ y lo build-rss.js

siguiente.config.js

 module.exports = { webpack: (config, options) => { config.module.rules.push({ test: /\.svg$/, issuer: { and: [/\.(js|ts|md)x?$/] }, use: [ { loader: '@svgr/webpack', options: { prettier: false, svgo: true, svgoConfig: { plugins: [{ removeViewBox: false }] }, titleProp: true, }, }, ], }) if (!options.dev && options.isServer) { const originalEntry = config.entry config.entry = async () => { const entries = { ...(await originalEntry()) } entries['./scripts/build-rss'] = './scripts/build-rss.js' return entries } } if (!options.isServer) { config.resolve.fallback.fs = false } return config }, }

Cuando trato de ejecutar mi script npm run build:development que en package.json representa:

 "scripts": { "clean": "rimraf .next", "dev": "next dev", "export": "next export", "start": "next start", "lint": "next lint", "build:development": "next build && npm run export && npm run rss:development", "build": "next build && npm run export && npm run rss", "rss:development": "node ./.next/server/scripts/build-rss.js", "rss": "node ./.next/serverless/scripts/build-rss.js" }

Me arroja un error diciendo:

Error: No se puede encontrar el módulo '../../webpack-runtime.js'

Pero lo comprobé. El archivo existe.

El error es que esto solía funcionar antes. Probablemente hace algunas versiones cuando mi otro proyecto usaba la misma combinación.

Hice una reproducción completa mostrando el error → https://github.com/deadcoder0904/next-script-rss-error

Simplemente clónelo, instálelo y pruebe el script npm run build:development en la terminal para ver el error.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Basado en nuestra conversación:

 entry: path.join(__dirname, '..', 'path/to/file')

Así es como se ve una entrada de paquete web. También puede ser una matriz o un objeto:

 entry: [ path.join(__dirname, '..', 'path/to/file'), // other entries here ]

Mientras que ya está obteniendo toda la configuración del paquete web:

 webpack: (config, options)

Así que haciendo:

 const originalEntry = config.entry config.entry = async () => { const entries = { ...(await originalEntry()) } entries['./scripts/build-rss'] = './scripts/build-rss.js' return entries }

No tiene sentido para mí si solo puedes hacer:

 config.entry.push('./scripts/build-rss') // config.entry['./scripts/build-rss'] = './scripts/build-rss.js'

A menos que me pierda algo con la forma en que nextjs está cargando la configuración del paquete web.

Incluso entonces, le sugiero que use path.join para asegurarse de que se cargue en la ubicación correcta, porque esa raíz relativa se ejecutará desde donde se compile el paquete web.

Junto con eso, en su primer proyecto usó nextjs v10 y ahora está usando nextjs v11, que tiene una actualización de webpack 4 a 5, que es una actualización importante. No conozco los detalles, solo puedo especular, pero bajo ninguna condición debe asumir que "debido a que su proyecto anterior estaba funcionando, este debería usar las mismas cosas", no necesariamente (especialmente no en este caso).

Lo primero que pensé fue que el paquete web debería agrupar de forma predeterminada todo en un solo archivo de salida, a menos que nextjs haya cambiado la configuración (no lo sé). Entonces, usar un script que agregó a las entradas no tenía sentido para mí, porque no existiría. Pero está diciendo que existe, por lo que solo puedo suponer que el paquete web está configurado para dividir el código y genera cada entrada en un archivo diferente. En cuyo caso no tengo ni idea. Por lo que sé, en el paquete web 5 (no sé sobre el paquete web 4), la división de código está deshabilitada en desarrollo y habilitada en producción, por lo que es probable que su problema sea una discrepancia entre desarrollo y producción.

Quizás lo último que puede intentar es cambiar su !options.dev , porque en este momento solo está agregando ese script cuando está en producción, pero está tratando de ejecutar el script usando desarrollo.

Si realmente solo tiene que hacer que funcione, puede degradar su nextjs a la versión anterior que estaba usando (v10), aunque esa no es realmente una solución.

Aparte de eso, me quedé sin ideas.

about 4 years ago · Juan Pablo Isaza Report

0

No estoy seguro de si todavía está buscando una respuesta, pero simplemente cambiar la entrada del paquete web de la siguiente manera parece haber solucionado el problema.

 entries['scripts/build-rss'] = './scripts/build-rss.js'; // instead of entries['./scripts/build-rss']
about 4 years ago · Juan Pablo Isaza Report

0

¡Yo tenía el mismo error! Eliminé la carpeta .next e hice un npm run dev . ¡Comenzó a funcionar para mí!

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!