Как исправить Angular6 "_getAriaLabel is not a function" со сборкой production

Проблема:

Вы собираете приложение Angular6, и в режиме разработки всё работает нормально. Однако, если вы собираете в режиме production:

build_prod.sh
ng build --prod --aot

вы видите ошибку вроде этой в клиенте:

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)
[...]

Решение

Проблема, по-видимому, вызвана некорректно обновлёнными модулями NodeJS. Вы можете исправить её, просто удалив вашу папку node_modules:

remove_node_modules.sh
rm -rf node_modules

Кроме того, рекомендуется обновить @angular/cli, так как баг, кажется, отсутствует в более новых версиях @angular/cli:

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

Источник и обсуждение на GitHub


Check out similar posts by category: Angular, JavaScript