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.