【问题标题】:How can I Run angular app on asp net core如何在 asp net core 上运行 angular 应用程序
【发布时间】:2021-07-10 14:01:14
【问题描述】:

我想用 asp net core 运行 angular 应用程序,我使用 UseSpa() 中间件,如下所示:

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.UseProxyToSpaDevelopmentServer("http://localhost:4200");
                    spa.UseAngularCliServer(npmScript: "start");
                }
            });

但我收到此错误:

fail: Microsoft.AspNetCore.SpaServices[0]
      - Generating browser application bundles...

当我单独提供 Angular 应用程序并使用时

spa.UseProxyToSpaDevelopmentServer("http://localhost:4200");

一切正常。

包.JSON:

"scripts": {
    "ng": "ng",
    "conventional-changelog": "conventional-changelog",
    "start": "ng serve",
    "build": "ng build",
    "build:prod": "npm run build -- --prod --aot"
    .
    .
    .
    }

  1. 如何使用spa.UseAngularCliServer(npmScript: "start"),如何完整查看错误日志?

  2. spa.UseAngularCliServer() 和 spa.UseProxyToSpaDevelopmentServer() 有什么区别?

【问题讨论】:

    标签: angular asp.net-core


    【解决方案1】:

    您的问题可能与此相同:https://github.com/dotnet/aspnetcore/issues/6342#issue-395713046。这个答案更简洁:Failed to start 'npm': Ensure that 'npm' is installed and can be found,尽管这里的实际错误消息具有误导性。

    基本上,Angular SPA 模板为您的 IIS Express 环境使用了错误的路径,这是 ASP.net 本地开发默认使用的路径。您需要根据上述建议更正路径。

    对于你的第二个问题,我用谷歌搜索了它们(我假设你也这样做了),我找不到任何实际的区别。看起来 UseProxyToSpaDevelopmentServer() 是 UseProxyToSpaDevelopmentServer() 的第二个重载的快捷方式:https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.builder.spaproxyingextensions.useproxytospadevelopmentserver?view=aspnetcore-5.0。

    【讨论】:

      猜你喜欢
      • 2020-02-26
      • 2019-10-04
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      • 2019-02-13
      • 2018-02-27
      • 1970-01-01
      • 2020-05-20
      相关资源
      最近更新 更多