Cómo solucionar Angular6 "_getAriaLabel is not a function" con build de producción

Problema:

Estás construyendo una aplicación Angular6 y en modo desarrollo todo funciona bien. Sin embargo, si construyes en modo producción:

build_prod.sh
ng build --prod --aot

ves un error como este en el cliente:

angular_production_error.txt
main.4d1baabffbba5677af03.js:1 ERROR TypeError: i.ɵnov(...)._getAriaLabel is not a function
    at Object.updateRenderer (main.4d1baabffbba5677af03.js:1)
    at Object.updateRenderer (main.4d1baabffbba5677af03.js:1)
[...]

Solución

El problema parece ser causado por módulos NodeJS actualizados incorrectamente. Puedes arreglarlo simplemente eliminando tu carpeta node_modules:

remove_node_modules.sh
rm -rf node_modules

Además, se recomienda actualizar @angular/cli ya que el bug no parece estar presente en versiones más recientes de @angular/cli:

update_angular_cli.sh
sudo npm i -g @angular/cli

Fuente y discusión en GitHub


Echa un vistazo a artículos similares por categoría: Angular, JavaScript