如何解决NPM脚本“开始”退出而未指示Angular CLI

时间:2018-10-09 15:13:10

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

我遇到此错误,当我使用angularjs在IIS中发布我的应用程序时,请帮助我,请帮助我如何使用.net core 2.1和angularjs解决此错误。在Visual Studio中正常工作时,我在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");
            }
        });

enter image description here

3 个答案:

答案 0 :(得分:5)

  • npm脚本“开始”意味着,.Net Core试图调用ng serve来 在开发环境中运行角度模块。所以当你主持 您在Azure /本地或任何其他服务器上的应用程序,请确保您 尚未在开发环境中部署您的应用程序。 "ASPNETCORE_ENVIRONMENT": "Development"更改为 "ASPNETCORE_ENVIRONMENT": "Production"Refer here

  • 在生产模式下部署后仍然面对其他任何问题 错误。尝试以下操作找出错误。注释掉

  • 中的Startup.cs中的以下代码块
  

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

,然后将应用程序重新部署到“开发”模式。您将收到真正的错误消息。

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

答案 1 :(得分:1)

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

    }

Add index.cshtml

答案 2 :(得分:1)

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

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

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

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