70

我正在尝试启动 .NET Core 2/Angular 6 SPA。我使用“dotnet new angular”创建了一个 Angular 5 应用程序,然后使用angular.io中的本指南进行升级。完成升级后,我尝试使用“dotnet run”运行应用程序,但我得到一个带有错误的丑陋错误页面:

处理请求时发生未处理的异常。

AggregateException:发生一个或多个错误。(发生了一个或多个错误。(NPM 脚本“开始”退出,但未指示 Angular CLI 正在侦听请求。错误输出为:未知选项:“--extractCss”

InvalidOperationException:NPM 脚本“启动”退出,但未指示 Angular CLI 正在侦听请求。错误输出是:未知选项:'--extractCss'

想也许我在升级过程中错过了一步,我第二次尝试并得到了同样的错误。

以下是我创建应用程序后采取的步骤:

npm install -g @angular/cli
npm install @angular/cli
ng update @angular/cli
ng update @angular/core
npm install --save @angular/material @angular/cdk @angular/animations hammerjs 
npm install -g rxjs-tslint
rxjs-5-to-6-migrate -p src/tsconfig.app.json

我在 Windows 10 (1703) Enterprise 上运行 Node 版本 9.4.0 和 .Net Core 2.1.200。

有想法该怎么解决这个吗?这是完整的堆栈跟踪:

 ---> System.IO.EndOfStreamException: Attempted to read past the end of the stream.
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddleware.<StartAngularCliServerAsync>d__3.MoveNext()
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddleware.<StartAngularCliServerAsync>d__3.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddleware.<>c.<Attach>b__2_0(Task`1 task)
   at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at Microsoft.AspNetCore.SpaServices.Extensions.Util.TaskTimeoutExtensions.<WithTimeout>d__1`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.SpaServices.Extensions.Proxy.SpaProxy.<PerformProxyRequest>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Builder.SpaProxyingExtensions.<>c__DisplayClass2_0.<<UseProxyToSpaDevelopmentServer>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Builder.RouterMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.<Invoke>d__7.MoveNext()
---> (Inner Exception #0) System.AggregateException: One or more errors occurred. (The NPM script 'start' exited without indicating that the Angular CLI was listening for requests. The error output was: Unknown option: '--extractCss'

) ---> System.InvalidOperationException: The NPM script 'start' exited without indicating that the Angular CLI was listening for requests. The error output was: Unknown option: '--extractCss'

 ---> System.IO.EndOfStreamException: Attempted to read past the end of the stream.
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddleware.<StartAngularCliServerAsync>d__3.MoveNext()
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddleware.<StartAngularCliServerAsync>d__3.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddleware.<>c.<Attach>b__2_0(Task`1 task)
   at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
---> (Inner Exception #0) System.InvalidOperationException: The NPM script 'start' exited without indicating that the Angular CLI was listening for requests. The error output was: Unknown option: '--extractCss'

 ---> System.IO.EndOfStreamException: Attempted to read past the end of the stream.
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddleware.<StartAngularCliServerAsync>d__3.MoveNext()
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddleware.<StartAngularCliServerAsync>d__3.MoveNext()<---
<---
4

11 回答 11

46

尝试执行以下操作

  1. 打开一个Powershell
  2. 导航到clientapp目录
  3. npm audit fix

这也适用于ReactJSVueJS项目。

于 2018-11-05T22:13:55.103 回答
41

对我来说,这个和以下解决了这个问题:https ://github.com/angular/angular-cli/issues/10666

您还需要编辑您的 package.json 文件并从 start 和 build 属性中删除 --extractCss 参数。从:

"scripts": {
    "ng": "ng",
    "start": "ng serve --extract-css",
    "build": "ng build --extract-css",

到:

"scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
于 2018-05-08T10:34:55.903 回答
22

这个问题也困扰了我几天。现在终于有办法了。显然,Visual Studio 会尝试自动为我们启动 Angular CLI 服务器以及 ASP.Net 核心进程。对于这种情况,它失败了。

因此,根据此处的 Microsoft Doc ,我们可以手动启动 Angular CLI 服务器。

  1. 导航到“ClientApp”文件夹,然后发出:

    服务

    从控制台启动服务器。

  2. 在“Startup.cs”文件中,替换

    spa.UseAngularCliServer(..)

spa.UseProxyToSpaDevelopmentServer("http://localhost:4200");
  1. 像往常一样按 F5 启动 ASP.Net Core 项目。

这样您就可以继续调试应用程序。

于 2018-10-23T03:19:09.137 回答
18

就我而言,我已从azure Web 应用程序中删除了以下应用程序设置,并且站点开始工作。

键:ASPNETCORE_ENVIRONMENT 值:开发

花了几天时间来解决这个问题:)

于 2019-11-18T11:25:24.723 回答
4

如果上述解决方案不起作用,您可以尝试以下对我有用的方法。

场景:将工作 VS 2017 解决方案:核心 web api & angular spa 项目转移到新安装的电脑;给了我上述错误。

解决方案:通过 Visual Studio 安装程序安装 node.js 工作负载后,windows 的 node.js ( https://nodejs.org/en/download/ ) 和 IIS 的必要 windows 功能;我回到了正轨。

主要安装是用于 Visual Studio 和 Windows(包括 npm)的 node.js,必须同时安装它们才能工作。可能是命令提示符的路径配置....

于 2018-10-17T20:24:23.530 回答
4

Joe 和 Jays 的解决方案都有效。要在不更改代码的情况下使用默认模板配置,您只需要按照 Jay 的上述说明安装适用于 windows 的 node.js,然后重新启动 VS。 https://nodejs.org/en/download/

关于使用 vs 和 vscode 创建、配置和部署 Core Angular 项目的优秀教程。还包括 IIS 设置。 https://www.codeproject.com/Articles/1250961/Deploying-an-Angular-Application-with-ASP-NET-Core

于 2018-11-01T12:47:51.527 回答
1

VS 2019 - 通过导航到 ClientApp 文件夹并运行解决了错误npm install。确保您已npm与 Angular Cli 一起安装在系统上。如果在安装 Angular Cli 时遇到问题,您可以在 package.json 文件中将脚本从 更改ng serve为。npm run start

于 2020-11-16T23:13:04.797 回答
0

我试图让一个 GitHub 项目从头开始工作。这些是我做的事情:

  • 下载并安装 NodeJS:https ://nodejs.org/en/download
  • 从 GitHub 下载任何 AngularJS 项目
  • 运行命令提示符并导航到“client-app”文件夹:dotnet new angular -o "C:\Users\me\OneDrive\Documents\Visual Studio 2017\Projects\myproject\myproject-dev\myproject-client-app" --force
  • 输入命令:npm install -g @angular/cli
  • 输入命令:npm build fix
  • 输入命令:npm run ng
  • 输入命令:npm start
  • 输入命令:ng start --extract-css

(我实际上不需要输入最后一个命令,因为npm start为我的项目启动了这个命令,但可能并非总是如此......)

在“Startup.cs”文件中,替换

spa.UseAngularCliServer(..)

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

然后F5像往常一样启动 ASP .NET Core 项目,开始调试应用程序。

毕竟,项目应该运行。

于 2020-05-25T16:03:26.373 回答
0

如果您使用 nvm 安装了多个 Node 版本。

您可以在终端中 cd 进入项目根目录并执行

nvm 使用 xxx

这解决了我的问题

于 2021-03-16T17:54:53.640 回答
0

帮帮我。

  1. 从安装程序 vs 安装节点 environment.js;

2)从官方网站为您的操作系统安装node.js;

  1. 通过 PowerShell 安装 npm。从管理员打开,转到 Client App 文件夹并运行 npm install。然后运行 ​​npm audit fix(修复错误)。
于 2021-04-13T12:13:35.067 回答
0

我遇到了同样的问题并通过从项目中卸载 Nodejs 并从 Nodejs.org 安装最新版本的 Nodejs 来解决它

于 2021-10-03T12:18:26.973 回答