Горячая перезагрузка в visual studio 2017 для основного спа-приложения asp.net с настраиваемым веб-сервером, используемым через прокси - PullRequest
1 голос
/ 09 мая 2019

У меня есть ядро ​​asp.net 2.2 приложение на основе шаблонов реагирования

Приложение реагирования в ClientApp имеет собственный скрипт сборки для приложения реагирования, которое компилирует материал в папке lib в ClientApp черезПользовательский скрипт 'npm run build'.

Что еще более важно, приложение работает с настраиваемым веб-сервером на основе узла / экспресса (запуск npm в clientapp запускает скрипт веб-сервера, который прослушивает, скажем, порт 6000)

Я не могу использоватьстандартный сервер разработки реакции, который поставляется с шаблоном.Файл startup.cs основного слоя asp.net использует его через spa.UseProxyToSpaDevelopmentServer (http://localhost:6000)

app.UseSpa (spa =>
             {
                 spa.Options.SourcePath = "ClientApp";
                 if (env.IsDevelopment ())
                     {
                     string reactDevServerUri = Configuration["ReactDevServerUri"];
                     spa.UseProxyToSpaDevelopmentServer(reactDevServerUri);
                     }
             });

Во время сеанса отладки в версии 2017, при любом изменении файлов машинописи в папке ClientApp \ src, янеобходимо
1. вызвать скрипт «build» в ClientApp \ package.json, чтобы скомпилировать реагирующее приложение в папке ClientApp \ lib 2. перезапустить мой веб-сервер, работающий через скрипт «start», чтобы выбрать новые изменения в lib
3.Перезагрузить браузер

В настоящее время я добавил сценарий «отладки», который использует nodemon для отслеживания изменений в приложении реагирования и перезапуска сервера после сценария сборки

    "debug": "nodemon -e ts,tsx --watch src --exec \"npm run build && npm run start\""

Мне все еще нужно перезагрузить браузер и он сампродолжает терпеть неудачу, пока сборка / запуск не закончены. Мне нужен лучший способ сделать это за один раз путем правильной конфигурации инкапсуляции основного проекта asp.net.

Пожалуйста, помогите мне найти способ :)

...