代码之家  ›  专栏  ›  技术社区  ›  MortenMoulder

使用dotnet core Angular的ng serve启动Angular

  •  1
  • MortenMoulder  · 技术社区  · 6 年前

    我用dotnet core CLI创建了一个新的Angular项目:

    dotnet new angular -o my-app
    

    我已经在我的项目之外建立了自己的部署和构建过程,所以我的项目在构建和部署时基本上是愚蠢的。我的项目不应该建立任何 .js 并将其存储在项目中的本地。这基本上就是我想要的:

    1. 我按F5/启动调试器
    2. dotnet核心项目启动并运行 npm install && ng serve
    3. 一旦完成,或在需要时,浏览器将打开并显示 ng serve 网站(我认为默认是 http://localhost:4200 )

    到目前为止,我已经接近实现这一点,但出于某种原因,dotnet core项目为我提供了构建的静态文件,我不想要这些文件(因为我想要从中实时重新加载) ng发球 ).以下是我现在能做的:

    1. 按F5启动调试器
    2. A. ng 窗口显示调试信息,其中显示以下信息: npm install ng发球 我们都跑了
    3. 打开 http://localhost:5000 它为我提供静态文件,就像我用 ng build

    如果我能解释我真正想要什么:

    1. 按F5启动调试器
    2. 项目启动和 ng 窗口出现,显示我跑了 npm install && ng serve -port 4200
    3. 浏览器启动 http://localhost:4200

    现在它在端口5000打开(或者我在 launchSettings.json 但我无法让它启动4200,因为从技术上讲,我不希望我的dotnet核心项目启动一个新的web服务器(从 ng发球 已经创建了一个)。这可能吗?

    包裹json

    "scripts": {
        "start": "npm install && ng serve --port 4200 &REM"
    }
    

    创业。反恐精英

    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }
    
        public IConfiguration Configuration { get; }
    
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }
    
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
            }
    
            app.UseSpa(spa =>
            {
                spa.Options.SourcePath = "component";
    
                if (env.IsDevelopment())
                {
                    spa.UseAngularCliServer("start");
                }
            });
        }
    }
    
    0 回复  |  直到 6 年前
        1
  •  1
  •   Zoe - Save the data dump 张群峰    5 年前

    我发现 this .

    简而言之,你必须替换下面这一行 Startup.cs

    spa.UseAngularCliServer(npmScript: "start");
    

    具有

    spa.UseProxyToSpaDevelopmentServer("NG-SERVER-URL");
    

    你得跑 ng serve 一次,它会告诉你它正在监听的url( NG-SERVER-URL )

    此修改允许运行 ng发球 在不同的过程中。Asp。Net将连接并向其发送呼叫。

    推荐文章