Angular ng build выдает ошибку link.parentNode.insertBefore не является функцией

У меня есть приложение 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 и производительности.


70
2

Ответы:

просто используйте ссылку?.parentNode?.insertBefore или (ссылку?.parentNode как угодно)?.insertBefore


Решено

Я думаю, что существует проблема, когда Angular пытается манипулировать DOM во время процесса сборки.

  1. Вы можете очистить кеш и установить все зависимости заново.

    npm cache clean --force

    rm -rf node_modules

    npm install

  2. Обновить зависимости Angular

    ng update @angular/cli @angular/core

  3. Проверено, используете ли вы какие-либо собственные скрипты или есть ли проблемы со сторонними библиотеками.

  4. Также проверьте, нет ли каких-либо неправильных конфигураций в angular.json и tsconfig.json, которые могут повлиять на процесс сборки.

  5. Иногда файл index.html может вызвать проблемы в процессе сборки. Вы можете попробовать создать новый проект Angular и скопировать index.html из нового проекта в существующий проект. И сделайте настройку в соответствии с вашими потребностями.

  6. Вы также можете использовать подробное ведение журнала для получения более подробной информации о сборке.

    ng build --verbose

Вы можете попробовать все эти шаги. Я надеюсь, что вы найдете решение в процессе.


Интересные вопросы для изучения

Ошибка для angular 7.2. Путь к данным «.builders['application']» должен быть объектомПользовательские директивы реактивной формы не запускаются OnInit или когда скрытый ввод отображается *ngIfИмя файла, сохраненного через угловой интерфейсAngular игнорирует пути к параметрам компилятораМой файл докеров для развертывания моего углового приложения не запускает приложение с помощью веб-сервера ни nodeJs, ни nginxОшибка: не удалось разрешить различные зависимости Storybook с помощью Storybook 8 и PNPMРазвертывание приложения Teams Toolkit через CI/CD завершается с ошибкой «Эта команда работает только для проекта, созданного с помощью Teams Toolkit»React Native w/Expo: странная ошибка при использовании run:androidСборка npm run не удалась из-за несовместимости машинописного текста или lodashStart-Process (pnpm run build) Эту команду невозможно запустить из-за ошибки: %1 не является допустимым приложением Win32