Угловое развертывание с использованием npm run build с параметрами base-href не отображает страницу
Недавно я столкнулся с проблемой, когда мы использовали команду "npm run build" в нашем yaml-скрипте конвейера сборки. Затем следуют такие параметры, как "base-href", "конфигурация" и т. Д. Сборка прошла, и развертывание прошло успешно, но когда мы тестируем приложение, оно не отображало страницу, но консоль имела следующие или похожие ошибки.
Failed to load module script: The server responded with a non-JavaScript MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec.
runtime-es2015.js:1
Failed to load module script: The server responded with a non-JavaScript MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec.
polyfills-es2015.js:1
Failed to load module script: The server responded with a non-JavaScript MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec.
vendor-es2015.js:1
Failed to load module script: The server responded with a non-JavaScript MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec.
main-es2015.js:1
команда, которую мы используем в yaml, была
npm run build -- "-c=<environment> --base-href='/Domain-href-url/'"
Предложенные аналогичные проблемы в SO не решали и не помогли, поскольку сценарий как таковой, используемый для локальной работы, с использованием командлета package.json работал нормально, а конвейер сборки vNext для angular в конвейерах Azure работал (если не были переданы параметры). Но нам нужны параметры среды и base-href.
1 ответ
Я публикую этот вопрос здесь, так как он может быть полезен тем, кто также сталкивается с этой проблемой в своих сценариях yaml.
Я не мог найти лучшего источника помощи для решения, но в конце концов я нашел одну ссылку, которая помогла.
Кроме того, проблема все еще сохранялась из-за значения параметра для base-href, которое мы передаем. Если мы передадим --base-href='/Domain-href-url/' (например, в одинарных или двойных кавычках) в параметрах, это создаст index.html с
<base href="'/Domain-href-url/'">
Посмотрите на URL-адрес href с одинарными кавычками внутри.. и это вызывает эту проблему.
Итак, решение: (довольно просто:-)) передавайте параметры без кавычек.
npm run build - --base-href=/ Домен-href-url /
<base href="/Domain-href-url/">
Поверьте, это решит проблемы, вызванные передачей этих аргументов сборки в качестве параметров через сценарии yaml и конвейеры сборки.
Теперь альтернативные решения для некоторых других людей с использованием сценариев в package.json также будут работать, если мы будем следовать тем же командам сценария.
как в моем примере использования:
"build-qa": "ng build -c=test --base-href=/Domain-href-url/",
Надеюсь, это поможет тем, кто сталкивается с такими проблемами в сценариях yaml конвейера сборки для создания приложений node или angular.