1

我有一個用於Web API開發的Asp.Net Core應用程序以及Angular 2(Typescript)中的客戶端代碼。如何爲dotnet核心(web Api)代碼更改以及TypeScript代碼更改啓用實時重新加載

爲了構建目的,我使用WebPack以及我也使用「webpack-dev-server」。

目前我有2個腳本中 「的package.json」 文件,

"scripts": { 
"startWebpackDevServer": "webpack-dev-server --inline --progress --port 8080", 
"build": "SET NODE_ENV=development && webpack -d --color && dotnet run" 

},

  1. 當我運行命令 「故宮運行startWebpackDevServer」,Web應用程序可在港「 8080「,只要我改變任何客戶端代碼(打字稿+角度),直播重新加載正在發生,並且更改會自動出現在瀏覽器中。 (大)。

  2. 但是,在端口「8080」中,我的Web API調用給了我404,爲什麼?

  3. 當我運行命令「npm run build」時,Web應用程序在端口「5000」可用,Web API調用也給了我結果,這裏缺少的是「live reload」。

我找這應該住重裝要麼上 A.任何打字稿+角碼& B.在網絡API(C#)代碼的任何變化改變的命令。

請建議!

回答

0

我不是100%確定我有你的問題,但我懷疑你可以有一個命令,實時重新加載Web Api。首先,它與節點無關。您可以嘗試使用watch命令或類似的.Net Core。

您可以檢查here如何使用手錶。否則,如果您只是在Visual Studio中構建應用程序並將其運行在IIS(或IIS Express)之後,則幾乎可以做到這一點。

1

我完全不瞭解您的需求,但您仍然有答案。

你可以用http-serverwatch來做到這一點。要在javascript項目(web)或C#項目(API)中的任何一個更改時實現實時重新加載,建議將您的web和web api項目放在同一個文件夾下。

你必須禁用的WebPack手錶並避免使用的WebPack開發服務器因爲你將有一個外部工具(看& HTTP服務器)來監視文件的變化和重新加載/服務頁面。

全局安裝http-serverwatch npm模塊,如下所示。

> npm install -g http-server watch

watch將監視的文件在當前工作目錄中的文件更改。如果在javsacript代碼或c#代碼中發生任何更改,它將執行作爲CLI選項給出的命令。該命令將使用http-server重新加載頁面。

package.json中的構建任務可能如下所示。

"build:dev": "SET NODE_ENV=development && dotnet run && webpack -d --color && npm run serve", 
"watch": "watch 'npm run build:dev' -p=node_modules|Bin|Obj|lib -d", 
"serve": "http-server -p 8080", 
"start": "npm run build:dev && npm run watch" 

現在執行> npm start建設,服務和觀看網頁和API。

+0

感謝您的回覆。我嘗試過,但似乎不工作。讚賞,如果你可以提供一些示例項目。再次感謝 –

0

「dotnet watch run」應該做webapi live-reload。標籤應該添加到Microsoft.DotNet.Watcher.Tools的項目文件中。