Como corrigir Angular6 "_getAriaLabel is not a function" com build de produção

Problema:

Você está compilando uma aplicação Angular6 e em modo de desenvolvimento tudo funciona bem. No entanto, se você compila em modo de produção:

build_prod.sh
ng build --prod --aot

você vê um erro como este no 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)
[...]

Solução

O issue parece ser causado por módulos NodeJS incorretamente atualizados. Você pode corrigi-lo simplesmente deletando sua pasta node_modules:

remove_node_modules.sh
rm -rf node_modules

Além disso, é recomendado atualizar @angular/cli já que o bug não parece estar presente em versões mais recentes de @angular/cli:

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

Fonte & discussão no GitHub


Check out similar posts by category: Angular, Javascript