Я чувствую, что нахожусь в той же лодке, что и вы !!! Потратив последнюю неделю или около того с момента официального выпуска dotnetcore3, я попытался запустить что-то, что использует инфраструктуру SPA.
Поскольку ответов на этот вопрос не было, и я заинтересован в том, чтобы запустить SPA-сервисы, aspnetcore3
я изучил различные шаблоны, поставляемые в Visual Studio. На данный момент шаблоны есть Angular
и React
которые используют aspnetcore3
.
До этого есть шаблоны для Angular
, React
а также Aurelia
. Для меня Аурелия выглядит великолепно - ванильные машинописные привязки. Поэтому я пытаюсь пойти по этому пути.
Мне удалось заставить HMR
(Горячая замена модуля) работать. Я построил проект Aurelia, используя CLI. Тем не менее, мой проект имеет много настроек, и я все еще учусь WebPack
. HMR в настоящее время не работает с Aurelia CSS.
Для моего сценария у меня было загружено клиентское приложение в VS Code. Я создал основной проект aspnet, который затем подключается к веб-пакету.
Я знаю, что вы спрашиваете конкретно о React, но концепция может быть такой же.
Некоторый код
Вы можете найти мой код здесь:
https://github.com/andez2000/spa-apps/tree/master/aurelia-cli/e1/aurelia-app
ПРИМЕЧАНИЕ: В настоящее время я просто добавляю вещи в этот репозиторий. Есть проекты, созданные из шаблонов, если вы перейдете на верхний уровень.
Применение
- Открыть папку
spa-apps\aurelia-cli\e1\aurelia-app
вVSCode
- Откройте
project.csproj
вVS2019
- Откройте терминал
VSCode
и запустите npm start -- --hmr
и дождитесь завершения вывода.
- Скомпилируйте и запустите решение в
VS2019
Это должно открыть браузер по умолчанию и загрузить index.ejs.
Что нужно отметить
Номера портов в проекте dotnet и проекте aurelia должны быть связаны.
Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
app.UseSpa(spa =>
{
if (env.IsDevelopment())
{
spa.UseProxyToSpaDevelopmentServer("http://localhost:5000");
}
});
}
aurelia.json
"platform": {
"hmr": false,
"open": false,
"port": 5000,
"host": "localhost",
"output": "wwwroot/dist"
},
Так что, возможно, это концептуально то же самое, что React. По какой-то причине мой шаблон React не может подключиться к IIS Express - и он сработал на днях - так что не в состоянии копать.
Для меня в этом проекте много движущихся частей. Хотелось бы, чтобы у меня было минимальное рабочее решение - оно включает в себя webpack + scss + некоторые фреймворки spa + dotnetcore3. Но есть тонна конфигурации и много файлов.
Другие ссылки
Также может быть стоит проверить этот пост в блоге:
https://www.alexdresko.com/2019/07/09/htmlwebpackplugin-asp-net-core-3/
Узнайте больше об аурелии здесь:
https://aurelia.io/
Надеюсь, кто-то даст вам лучший ответ - но это может помочь вам. Надеемся, что Microsoft обновит документы и примеры и предоставит нам более подробные рекомендации.
Обновление шаблона dotnet (апрель 2020 г.)
Я надеюсь, что обновленные шаблоны могут преодолеть различия между ядром aspnet и ядром dotnet с помощью веб-пакета. Так что надеемся, что это случай добавления новых шаблонов.
Посмотреть здесь:
https://github.com/NetCoreTemplates/aurelia-spa