Обновление ASP. NET Core 2.2 до 3.1 с VueJs - PullRequest
0 голосов
/ 09 июля 2020

Я обновляю проект ASP. NET Core MVC с вложенным разделом ClientApp VueJs 2 с ASP. NET Core 2.2 до 3.1.

Обычно я я использую инструкции на этой странице: https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.1&tabs=visual-studio#break, а затем завершу процесс до go с 3,0 до 3,1.

Одна проблема, с которой я столкнулся, заключается в том, что UseWebpackDevMiddleware из Службы Microsoft.AspNetCore.SpaServices, используемые в startup.cs, теперь устарели (и будут удалены в. net 5).

From Startup.cs:

app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
{
   HotModuleReplacement = true,
});

From package.json :

...
"scripts": {
     "dev": "cross-env ASPNETCORE_ENVIRONMENT=Development NODE_ENV=development dotnet run",
     "build": "npm run build-vendor:prod && npm run build:prod",
     "build:prod": "cross-env NODE_ENV=production webpack --progress --hide-modules",
     "build-vendor:prod": "cross-env NODE_ENV=production webpack --config webpack.config.vendor.js --progress",
     "build-vendor:dev": "cross-env NODE_ENV=development webpack --config webpack.config.vendor.js --progress",
     "lint": "eslint -c ./.eslintrc.js ClientApp/**/*.js  ClientApp/**/*.vue  ClientApp/**/*.json webpack*.js",
    "install": "npm run build-vendor:dev"
 },
...

Из BaseCore.csproj:

<Target Name="RunWebpack" AfterTargets="ComputeFilesToPublish">
  
<!- - As part of publishing, ensure the JS resources are freshly built in production mode - ->
<Exec Command="node -e &quot;console.log('NPM Installing dependencies...')&quot;" />
<Exec Command="npm install - -ignore-scripts" />
<Exec Command="npm run build" />

<!- - Include the newly-built files in the publish output - ->
<ItemGroup>
  <DistFiles Include="wwwroot\dist\**; ClientApp\dist\**" />
  <ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
    <RelativePath>%(DistFiles.Identity)</RelativePath>
    <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
  </ResolvedFileToPublish>
</ItemGroup>
</Target>

Я хотел бы найти замену, которая работает аналогично тому, что у меня уже есть, и которая строит проект VueJs в VS Решение 2019 при запуске с 'горячей заменой модуля' для восстановления VueJs 'ClientApp' в папку dist в wwwroot.

Затем код dist javascript запускается в barebone Index.cshtml страница. Наличие ядра SPA, а также. net основных контроллеров и представлений - это для меня плюс.

Возможности использования VueCliMiddleware или Microsoft.AspNetCore.SpaServices.Extensions (преемник), но еще нет рабочего кода. У кого-нибудь есть опыт или хорошие образцы для этого сценария?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...