【问题标题】:how to solve The NPM script 'start' exited without indicating that the Angular CLI如何解决 NPM 脚本“启动”退出但未指示 Angular CLI
【发布时间】:2019-03-14 10:11:47
【问题描述】:

我正面临这个错误,当我在 IIS 中使用 angularjs 发布我的应用程序时请帮助我,请帮助我如何使用 .net core 2.1 和 angularjs 解决这个错误。在视觉工作室工作正常我在 IIS 中面临这个错误

  services.AddSpaStaticFiles(configuration =>
            {
                configuration.RootPath = "ClientApp/dist";
            });
            });


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");
            }
        });

错误截图:

【问题讨论】:

  • Angular 1.x?还是角2及以上?
  • angular6........
  • 您可以尝试在 Visual Studio 代码中编译并查看输出吗?
  • 你有没有想出解决这个问题的办法?

标签: angular asp.net-core .net-core angular6


【解决方案1】:
  • npm script 'start' 表示,.Net Core 正在尝试调用 ng serve 来 在开发环境中运行角度模块。因此,当您托管时 您在 Azure/local 或任何其他服务器中的应用程序,请确保您 尚未在开发环境中部署您的应用程序。 "ASPNETCORE_ENVIRONMENT": "Development" 改成 "ASPNETCORE_ENVIRONMENT": "Production"Refer here

  • 在生产模式下部署后仍面临任何其他 错误。请尝试以下操作以找出错误。注释掉 Startup.cs 中的以下代码块

//if (env.IsDevelopment()) // { // spa.UseAngularCliServer(npmScript: "start"); // }

并以开发模式重新部署应用程序。你会得到真正的错误信息。

可以在 ServiceManifest.xml 文件中更改该变量。默认情况下未设置。

【讨论】:

  • 如何“在生产模式下部署”?
  • 在我的例子中,我的 web.config 文件在发布过程中使用 ASPNETCORE_ENVIRONMENT 变量进行了更新。
【解决方案2】:
  public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {

      app.UseDeveloperExceptionPage();
      app.UseHttpsRedirection();
      app.UseStaticFiles();
      app.UseAuthentication();
     app.UseSpaStaticFiles();    

      app.UseMvc(routes =>
            {
              routes.MapRoute(
                  name: "default",
                  template: "{controller}/{action=Index}/{id?}");

              routes.MapSpaFallbackRoute(
                    name: "spa-fallback",
                    defaults: new { controller = "Home", action = "Index" });
            });

      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");
        }
      });

    }

【讨论】:

    【解决方案3】:

    注意错误**npm** is not recognized as an inernal or external command的相关部分。

    我在全新安装 Windows 和 VS 时遇到此错误。事实证明,尽管在 VS 安装程序中选择了 node.js 开发工具,但实际上并没有安装 node,所以也没有安装 npm。

    您可以通过在命令提示符下运行node -v 来测试它。

    通过安装节点为我解决了。请注意,如果您没有 node_modules 中的依赖项,您可能还需要执行 npm install 来下载它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 2022-12-14
      • 1970-01-01
      • 2021-08-18
      相关资源
      最近更新 更多