Я обновляю проект 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 "console.log('NPM Installing dependencies...')"" />
<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
(преемник), но еще нет рабочего кода. У кого-нибудь есть опыт или хорошие образцы для этого сценария?