У меня есть приложение 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 с той же ошибкой. Что это может быть? Я действительно понятия не имею...
просто используйте ссылку?.parentNode?.insertBefore или (ссылку?.parentNode как угодно)?.insertBefore
Проблема в том, что, как я только что сказал, я нигде не использую эту функцию и не знаю, где она используется... Похоже, она генерируется внутри main.js, когда я создаю приложение...
когда проверяется совместимость версии узла
Наверное от этого зависело, но версию поменять не могу, так как работаю на VPS
при повышении или понижении версии угловых пакетов
Я думаю, что существует проблема, когда 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
Вы можете попробовать все эти шаги. Я надеюсь, что вы найдете решение в процессе.
Это было правильное направление, я просто пересобрал приложение с нуля и поместил все файлы и папки обратно в новый проект, спасибо!
Добро пожаловать.. веселитесь ;)
Пожалуйста, задайте этот вопрос в StackOverflow: stackoverflow.com/questions/67537268/…