如何为dotnet核心(web Api)代码更改启用实时重新加载以及TypeScript代码更改

时间:2017-01-20 10:10:11

标签: angular typescript webpack webpack-dev-server asp.net-core-webapi

我有一个用于Web API开发的Asp.Net Core应用程序以及Angular 2(Typescript)中的客户端代码。

出于构建目的,我正在使用WebPack,我也在使用“webpack-dev-server”。

目前我在“Package.Json”文件中有2个脚本,

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

},

  1. 当我运行命令“npm run startWebpackDevServer”时,Web应用程序在端口“8080”处可用,并且一旦我更改任何客户端代码(typescript + angular),实时重新加载正在发生,并且更改会自动出现在浏览器中。 (大)。

  2. 但是,在端口“8080”中,我的Web API调用给了我404,为什么?

  3. 当我运行命令“npm run build”时,Web应用程序在端口“5000”处可用,Web API调用也给了我结果,这里缺少的是“实时重新加载”。

    < / LI>

    我正在寻找一个应该重载的命令, A.打字稿+角码的任何变化&amp; B. Web API(C#)代码的任何变化。

    请建议!

3 个答案:

答案 0 :(得分:1)

我完全不理解你的需要,但你仍然有答案。

您可以使用http-serverwatch执行此操作。要在更改javascript项目(Web)或C#项目(API)时实现实时重新加载,建议将您的Web和Web api项目放在同一文件夹下。

你必须在webpack中禁用手表并避免使用webpack dev服务器因为你将有一个外部工具(watch&amp; http-server)来监视文件更改和重新加载/服务页面。

全局安装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。

答案 1 :(得分:0)

我不是100%肯定我得到了你的问题,但我怀疑你是否可以拥有一个可以重新加载Web Api的命令。它首先与节点没有任何关系。您可以尝试使用watch命令或类似的.Net Core。

您可以查看here如何使用手表。否则,如果您只是在Visual Studio中构建应用程序并在IIS(或IIS Express)后面运行它,那么它几乎也会这样做。

答案 2 :(得分:0)

&#34; dotnet watch run&#34;应该做webapi实时重载。应将标记添加到Microsoft.DotNet.Watcher.Tools的项目文件中。