我有一个用于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"
},
当我运行命令“npm run startWebpackDevServer”时,Web应用程序在端口“8080”处可用,并且一旦我更改任何客户端代码(typescript + angular),实时重新加载正在发生,并且更改会自动出现在浏览器中。 (大)。
但是,在端口“8080”中,我的Web API调用给了我404,为什么?
当我运行命令“npm run build”时,Web应用程序在端口“5000”处可用,Web API调用也给了我结果,这里缺少的是“实时重新加载”。
< / LI> 醇>我正在寻找一个应该重载的命令, A.打字稿+角码的任何变化&amp; B. Web API(C#)代码的任何变化。
请建议!
答案 0 :(得分:1)
我完全不理解你的需要,但你仍然有答案。
您可以使用http-server和watch执行此操作。要在更改javascript项目(Web)或C#项目(API)时实现实时重新加载,建议将您的Web和Web api项目放在同一文件夹下。
你必须在webpack中禁用手表并避免使用webpack dev服务器因为你将有一个外部工具(watch&amp; http-server)来监视文件更改和重新加载/服务页面。
全局安装http-server
和watch
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的项目文件中。