当使用Microsoft.DotNet.Web.Spa.ProjectTemplates::2.0.0时,"d



dotnet new angularMicrosoft.DotNet.Web.Spa.ProjectTemplates::2.0.0[docs] 生成的*.csproj文件似乎将这些命令呈现为相同:dotnet runnpm start

无论何时,我打算从我需要启动的Visual Studio Code运行SPAASP.NET Core后端(按F5)。运行dotnet run不会同时运行两者。

这种情况是故意的吗?我什至不应该在 VS Code 中使用dotnet run吗?

对于dotnet runnpm start,它们是完全不同的。dotnet run用于启动.Net Core项目,npm start用于启动Angular项目。

Pressing F5将同时启动CoreAngular项目的原因是,从VS Code启动时,EnvironemntDevelopment,然后Startup.Configure将运行下面的代码:

spa.UseAngularCliServer(npmScript: "start");

UseAngularCliServer会调用StartAngularCliServerAsync为您Angular项目,该项目对应于运行npm start

如果您想从dotnet runAngularCore项目,有两种选择供您选择

  • 在Windows操作系统中从CommandLin运行SET ASPNETCORE_Environment=Development,在Linux或MacOS中运行export ASPNETCORE_Environment=Development
  • 删除启动中的if (env.IsDevelopment())

    app.UseSpa(spa =>
    {
    // To learn more about options for serving an Angular SPA from ASP.NET Core,
    // see https://go.microsoft.com/fwlink/?linkid=864501
    spa.Options.SourcePath = "ClientApp";
    // if (env.IsDevelopment())
    // {
    //     spa.UseAngularCliServer(npmScript: "start");
    // }
    spa.UseAngularCliServer(npmScript: "start");
    });
    

相关内容

最新更新