我有一个用于 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 调用也给了我结果,这里缺少的是“live reload”。
我正在寻找一个应该实时重新加载的命令, A. typescript + Angular 代码的任何变化& B. Web API (C#) 代码的任何更改。
请推荐!
最佳答案
我不完全理解你的需求,但你仍然有答案。
您可以使用 http-server 执行此操作和 watch .要在 javascript 项目(web)或 C# 项目(API)更改时实现实时重新加载,建议将您的 web 和 web api 项目放在同一文件夹下。
你必须在 webpack 中禁用 watch 并避免使用 webpack dev server 因为你将有一个外部工具(watch 和 http-server)来监视文件更改并重新加载/服务页面。
全局安装 http-server
和 watch
npm 模块,如下所示。
> npm install -g http-server watch
watch
会监听当前工作目录下文件的变化。如果 javasacript 代码或 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
来构建、服务和监视 web 和 api。
关于angular - 如何为 dotnet 核心(web Api)代码更改以及 TypeScript 代码更改启用实时重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41761002/