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

318
Views
¿Cómo podría escribir un complemento de Webpack que actualice `resolve.modules` y `resolve.alias` en modo `--watch` en tiempo de ejecución?

Trabajo en un gran monorepo que tiene muchos archivos procesados por Webpack. Uno de nuestros patrones principales es que usamos nombres de archivo totalmente calificados para cada nombre de módulo e importación. Por ejemplo, si tengo un archivo con la ruta "/ruta/al/módulo/MyCoolModule.js", la importación simplemente parecería import MyCoolModule from 'MyCoolModule' sin necesidad de una ruta explícita al módulo. Esto se habilita al escanear recursivamente los directorios del proyecto en busca de todos los archivos/carpetas .js relevantes en Webpack init y luego pasar los archivos escaneados a resolve.modules y resolve.alias .

Nos gusta este patrón y funciona bien para uso general cuando el paquete web se ejecuta en modo watch ; sin embargo, se descompone cuando se agregan nuevas carpetas y archivos al proyecto mientras Webpack ya se está ejecutando. Debido a que los archivos y carpetas solo se escanean al inicio de Webpack, Webpack no puede resolver las importaciones de nuevos archivos/carpetas agregados desde que comenzó, por lo que la compilación fallará. Esto requiere que reiniciemos Webpack, lo que demora de 1 a 2 minutos en nuestro proyecto. Para muchos ingenieros, al cambiar entre las ramas de git o actualizar los cambios desde master , esto puede sumarse a una ralentización significativa en el tiempo sin procesar y en el flujo de interrupción.

Me gustaría escribir un complemento que actualice dinámicamente resolve.modules y resolve.alias de modo que no tengamos que reiniciar Webpack cuando se agreguen nuevas carpetas y archivos al proyecto. Sin embargo, no sé cómo hacer esto. Parece que tengo tres preguntas principales:

  1. ¿Qué enlace(s) puedo usar para recibir una notificación cuando tap detecte nuevos archivos o carpetas?
  2. ¿Dónde colocaría este complemento para acceder a los ganchos anteriores? ¿Existiría en la configuración de plugins de nivel superior? resolve.plugins ? etc. Según lo entiendo, el lugar donde se coloca/configura el complemento afectará los ganchos disponibles para él.
  3. ¿Cómo puedo informar a Webpack sobre estas actualizaciones dinámicas? Supongo que hay una referencia al objeto de resolve en algún lugar que contiene resolve.modules y resolve.aliases que Webpack hace referencia activamente, pero no estoy seguro de dónde viviría o dónde acceder a él (esto también podría ser completamente incorrecto)

(nota: técnicamente estamos usando Webpack 4, pero las respuestas para Webpack 5 son bienvenidas porque sé que estamos atrasados, y supongo que una solución de Webpack 5 aún me indicaría la dirección correcta)

¡Gracias!

about 4 years ago · Juan Pablo Isaza
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!