Сборка в рабочем режиме приводит к пустой странице, в то время как сборка в режиме разработки работает отлично (Angular 8) - PullRequest
0 голосов
/ 10 июля 2019

В режиме разработки (APS-WebAPI) сборка работает без ошибок (ng b --watch). При переходе в рабочий режим (ng b --aot ИЛИ ng b --prod) страница загружается без ошибок, но в результате получается пустая страница. Index.cshtml будет создан путем поиска * .js-файлов в папке из Homecontroller. Эта проблема возникает, так как мы обновляем с Angular-6 до Angular-8.

Мы хотели бы опубликовать наши изменения и обновления среды (Angular-8 и TypeScript 3.4.5). В режиме Dev (ng b --watch) мы отображаем файл main.js / polyfills.js / runtime.js / styles.css / vendor.js / modules * .js в Index.cshtml. Это отлично работает.

enter image description here enter image description here

При публикации с помощью --aot или --prod мы получаем все файлы с ES5 и ES2015. В той же схеме мы отображаем это в Index.cshtml. После загрузки страницы все файлы найдены, но страница пуста без ошибок. Все файлы загружаются как в угловом сгенерированном index.html

enter image description here enter image description here

Мы используем следующий Index.cshtml, он обычно одинаков для Dev- и Prod-Mode.

ConfigurationViewModel model = new ConfigurationViewModel();
var webPath = HttpRuntime.AppDomainAppVirtualPath;
var localPath = HostingEnvironment.MapPath(webPath);
var angularPath = Path.Combine(localPath ?? throw new InvalidOperationException(), "Map");
var angularDirectory = new DirectoryInfo(angularPath);

Prod-Mode

model.RuntimeJsEs5 = angularDirectory.GetFiles("runtime-es5*.js").Single().Name;
model.RuntimeJsEs2015 = angularDirectory.GetFiles("runtime-es2015*.js").Single().Name;
model.PolyfillsJsEs5 = angularDirectory.GetFiles("polyfills-es5*.js").Single().Name;
model.PolyfillsJsEs2015 = angularDirectory.GetFiles("polyfills-es2015*.js").Single().Name;
model.MainJsEs5 = angularDirectory.GetFiles("main-es5*.js").Single().Name;
model.MainJsEs2015 = angularDirectory.GetFiles("main-es2015*.js").Single().Name;
model.StylesCss = angularDirectory.GetFiles("styles.css").Single().Name;


<head>
....
<link rel="stylesheet" href="@Model.ConfigurationViewModel.StylesCss">
....
</head>
<body>
....
<script type="module" #src="@Model.ConfigurationViewModel.RuntimeJsEs2015"></script>
<script type="module" src="@Model.ConfigurationViewModel.PolyfillsJsEs2015"></script>
<script nomodule src="@Model.ConfigurationViewModel.RuntimeJsEs5"></script>
<script nomodule" src="@Model.ConfigurationViewModel.PolyfillsJsEs5"></script>
<script type="module" src="@Model.ConfigurationViewModel.MainJsEs2015"></script>
<script nomodule src="@Model.ConfigurationViewModel.MainJsEs5"></script>
....
</body>

Dev-Mode

model.RuntimeJsEs2015 = angularDirectory.GetFiles("runtime.js").Single().Name;
model.PolyfillsJsEs2015 = angularDirectory.GetFiles("polyfills.js").Single().Name;
model.MainJsEs2015 = angularDirectory.GetFiles("main.js").Single().Name;
model.StylesCss = angularDirectory.GetFiles("styles.css").Single().Name;
model.VendorJsEs2015 = angularDirectory.GetFiles("vendor.js").Single().Name;


<head>
....
<link rel="stylesheet" href="@Model.ConfigurationViewModel.StylesCss">
....
</head>
<body>
....
<script type="module" src="@Model.ConfigurationViewModel.RuntimeJsEs2015"></script>
<script type="module" src="@Model.ConfigurationViewModel.PolyfillsJsEs2015"></script>
<script type="module" src="@Model.ConfigurationViewModel.VendorJsEs2015"></script>
<script type="module" src="@Model.ConfigurationViewModel.MainJsEs2015"></script>
....
</body>

При необходимости я бы позже опубликовал также angular.json.

1 Ответ

0 голосов
/ 11 июля 2019

Я бы представил свое решение, если у кого-то есть такая же проблема.

«Оптимизатор сборки» от Angular создает пустую белую страницу.Следующая проблема github приводит меня к решению (https://github.com/angular/angular-cli/issues/8758). Так что, если вы отключите buildOptimizer в angular.json, все работает отлично. К вашему сведению, угловая проблема 12112 также указывает на эту проблему (https://github.com/angular/angular-cli/issues/12112).

...