У меня есть приложение Angular v16, которое в настоящее время работает нормально, когда я использую его на своем локальном компьютере. В любом случае, когда я пытаюсь его построить, он дает мне следующий ответ:
✔ Browser application bundle generation complete.
✔ Copying assets complete.
✖ Index html generation failed.
link.parentNode.insertBefore is not a function
Я не использую функцию InsertBefore ни в одном из своих компонентов или сервисов. Я думал, что это может зависеть от того, что я установил jquery и datatables в свой проект (поскольку я знаю, что есть некоторые проблемы несовместимости между angular и jquery, и я видел, что в jquery.js часто используется метод InsertBefore), но даже после удаления всех зависимостей и комментируя ссылки, он продолжает завершать сборку ng с той же ошибкой. Что это может быть? Я действительно понятия не имею...
🤔 А знаете ли вы, что...
Angular Universal позволяет рендерить веб-приложение на сервере для улучшения SEO и производительности.
просто используйте ссылку?.parentNode?.insertBefore или (ссылку?.parentNode как угодно)?.insertBefore
Я думаю, что существует проблема, когда Angular пытается манипулировать DOM во время процесса сборки.
Вы можете очистить кеш и установить все зависимости заново.
npm cache clean --force
rm -rf node_modules
npm install
Обновить зависимости Angular
ng update @angular/cli @angular/core
Проверено, используете ли вы какие-либо собственные скрипты или есть ли проблемы со сторонними библиотеками.
Также проверьте, нет ли каких-либо неправильных конфигураций в angular.json и tsconfig.json, которые могут повлиять на процесс сборки.
Иногда файл index.html может вызвать проблемы в процессе сборки. Вы можете попробовать создать новый проект Angular и скопировать index.html из нового проекта в существующий проект. И сделайте настройку в соответствии с вашими потребностями.
Вы также можете использовать подробное ведение журнала для получения более подробной информации о сборке.
ng build --verbose
Вы можете попробовать все эти шаги. Я надеюсь, что вы найдете решение в процессе.