![](/img/trans.png)
[英]Error from `ng serve` after running `ng update @angular/cli @angular/core` and unable to serve Angular project
[英]Launch Angular with ng serve with dotnet core Angular
我已經使用dotnet核心CLI創建了一個新的Angular項目:
dotnet new angular -o my-app
我已經在項目外部設置了自己的部署和構建過程,因此,在構建和部署方面,我的項目本質上是愚蠢的。 我的項目永遠不要構建任何.js
文件並將其本地存儲在項目中。 這基本上是我想要的:
npm install && ng serve
ng serve
站點(我認為默認值為http://localhost:4200
) 到目前為止,我已經接近使它生效,但是由於某種原因,dotnet核心項目為我提供了我不需要的靜態文件(因為我想從ng serve
重新加載)。 我現在可以做的是:
ng
窗口,其中包含調試信息,其中顯示了諸如npm install
和ng serve
已運行 http://localhost:5000
,它為我提供靜態文件,就好像我使用ng build
應用程序一樣 如果我能解釋我真正想要的是:
ng
窗口,顯示我已運行npm install && ng serve -port 4200
現在,它在打開5000端口(或不管我在指定launchSettings.json
文件),但我不能把它推出4200,因為技術上我不希望我的dotnet的核心項目,開始一個新的Web服務器(因為ng serve
已經創建了一個)。 這可能嗎?
package.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");
}
});
}
}
我發現了這個 。
簡而言之,您必須在Startup.cs
替換以下行
spa.UseAngularCliServer(npmScript: "start");
與
spa.UseProxyToSpaDevelopmentServer("NG-SERVER-URL");
您必須運行一次ng serve
,這將告訴您正在監聽的url( NG-SERVER-URL
)
此修改允許在單獨的過程中運行ng serve
。 Asp.Net將連接並調度對其的調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.