ASP.NET Core(.NET 5)+ Angular 11 = 空项目构建错误

7
如果我在Visual Studio中使用dotnet new angular创建一个新的ASP.NET Core Web API + Angular项目,它将创建一个包含一个新的Angular 8.2项目的.NET 5项目。如果我按下F5,则一切都运行得很完美。
但是我想使用Angular 11项目,所以我清空了ClientApp内容,在那里打开终端并输入命令ng new <app-name> --directory ./
项目已创建,F5,项目启动,但每次启动时这两行都会出现在调试控制台中:

Microsoft.AspNetCore.SpaServices: Error: - Generating browser application bundles... Microsoft.AspNetCore.SpaServices: Error: √ Browser application bundle generation complete.

我尝试了很多次:合并了之前的tsconfig.jsonangular.jsonlaunchSettings.json中的值,但没有解决问题。相反,如果我从ClientApp目录启动ng serve,它就可以无错误地工作。
在Visual Studio和Angular CLI之间存在不兼容性吗?感谢大家的帮助!

没有任何不兼容性 - 但是为什么您不在原有的项目中升级angular版本呢?当您创建一个新项目时,您失去了所有已安装的.NET集成。 - fredrik
那么,应用程序尽管有控制台输出仍然可以运行?如果是这样,请忽略它们。这就是SPA服务处理CLI输出的方式。我经常在我做过同样事情的应用程序中看到它们。它们是开发/构建时间的消息。在应用程序构建和部署后,它们不会影响任何内容。 - R. Richards
@fredrik:我不知道有集成,我对Web开发还很新。无论如何,我尝试了那条路线两次,即使我严格遵循官方更新程序,顺序也不是直接的,并且会出现模块不兼容的警告和错误,如果我强制执行这些步骤,最终项目就无法工作。 - Sergio
@R.Richards:知道了,但是有错误需要忽略是有点烦人的,会引起混乱,可能会不小心忽略其他错误通知,而且很危险。 - Sergio
您可以随时回滚到与模板相对应的CLI版本。 - R. Richards
2个回答

5

这并不是真正的错误。Angular将构建进度消息写入流中,而dotnet将其识别为错误。您可以通过在angular.json中添加此键来禁止显示进度(以及虚假失败消息):

"projects": {
"<PROJECT_NAME>": {
  "architect": {
    "build": {
      "options": {
        "progress": false
      }
    }
  }
}
}

3

我遇到了类似的问题,甚至在StackOverflow上提问。然而,正如回复所建议的那样,这是因为Angular生成的结果意外地看起来像.NET错误,基本上是一种懒散编码的情况。

虽然我理解你的痛苦并与你分享,但你需要接受MS在Angular最新技术方面有点落后。在我看来,你应该继续使用最新的版本11或其他版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接