ASP.NET Core Angular Шаблон: app.module.client vs. app.module.server

Microsoft предоставляет фантастический шаблон для разработки Angular (не AngularJS) в ядре ASP.NET, как указано в их статье " Создание отдельных приложений страниц на ASP.NET Core с JavaScriptServices".

В то время как это очень просто, есть одна часть шаблона, которая застала меня врасплох: вместо того, чтобы просто быть файлом app.module.ts, есть как app.module.client.ts, так и app.module.server.ts.

снимок экрана <code> app.module.client.ts </code> и < код > app.module.server.ts </код >

Мне не удалось найти ничего, что объясняет это в Интернете. Кто-нибудь знает, почему существуют эти два отдельных файла для модуля приложения, каковы их конкретные применения, как их использовать и т.д.?

Если это вообще помогает, вот как выглядит полный шаблон:

полный шаблон ASP.NET Core  Angular

Я должен отметить, что ClientApp/app/models и ClientApp/app/services - это две папки, которые я добавил для своих целей; они не являются частью шаблона. Кроме того, app.module.shared.ts на самом деле очень прямолинейный и просто запрещает писать код дважды, поэтому не беспокойтесь об этом.

Вот как выглядят два файла:

<code> app.module.client.ts </code> и <code> app.module.server.ts </code> код бок о бок

Ответы

Ответ 1

Позвольте мне начать с того, что я не на 100% уверен в точности этого утверждения, но поскольку никто, кажется, не ответил, я дам ему шанс.

Microsoft SPA с Angular 2 использует Angular Universal для рендеринга AOT. Теперь он был обновлен для использования Angular 4, который не использует Angular Universal. Я думал, что вместо этого он распаковал app.module.ts в файл клиента и сервера, чтобы помочь с рендерингом AOT.

Файл app.module.shared.ts - это просто глобальная константа, которая используется app.module.client.ts и app.module.server.ts. Поскольку все это передается в пару js файлов во время публикации, на самом деле не имеет значения, что они разбивают файл app.module.