He estado trabajando en un proyecto Angular durante un par de meses con un tamaño de paquete muy grande, he estado tratando de minimizar el paquete principal y la carga diferida de algunas rutas. Usando webpack-bundle-analyzer , he visto que una gran parte del paquete (g-zipped) es un paquete llamado iconv-lite que existe bajo encoding y no puedo encontrar qué parte de la aplicación lo está usando.
¿Es angular el que lo está usando? ¿Alguien tiene alguna idea? Puedo ver que algunas cosas tienen dependencias en mi yarn.lock como una jest y less , pero esas no deberían incluirse en el paquete principal.
Feliz de entrar en alguna dirección aquí.
Después de mucha investigación, descubrimos que el problema era una dependencia llamada gettext-parser . gettext-parser no fue diseñado para navegadores. Webpack polillenó los módulos requeridos de node.js y uno de ellos fue body-parser y luego, a su vez iconv-lite .
Encontramos esto al actualizar a Angular 12 cuando webpack@5 dejó de polillenar las dependencias de node.js y comenzó a arrojar errores durante la compilación.