有什么方法可以触发 Azure Functions 在本地进行更改和 运行 时重新传输并重新启动您的函数?

Is there any way to trigger the Azure Functions to retranspile and restart your function when making changes and running locally?

我正在 VS 代码中使用 TypeScript 编写 Azure 函数。如果我在本地启动 Azure Functions 主机(通过在 VS Code 中使用 F5 或通过命令行中的 运行 "npm start"),一切运行良好。但是,当我对我的 TypeScript 代码进行更改并保存时,本地 Azure Function 主机不会接收 change/restart 函数。我必须手动stop/restart它。

package.json 中的默认 "start" 条目似乎试图实现这一点:

"start": "npm run start:host & npm run watch"

但是 运行 "npm start" 似乎不会导致更改时重新启动行为。我可能没有在正确的地方寻找,但似乎第二个命令根本没有执行。也就是说,即使我在 VS Code 中有 tsc watch 运行 而 "func start" 在其他地方是 运行,Azure Function 主机似乎仍然需要在转换发生后手动重启。

有没有办法让本地 Azure Function 主机在我更改 TypeScript 代码时自动重启?我是否遗漏了一些关于它应该如何工作的信息?

谢谢!

通过更多研究,问题似乎在于 package.json 中的单个与号 (&) 不会 运行 Windows 上的并行命令。 Windows cmd shell 运行s 命令由 & 分隔串行。因此,虽然此命令可能在 bash 或其他情况下按预期工作,但在 Windows 上的 运行 时不起作用。

看起来您可以通过使用此处答案之一中提到的内容以特定于 Windows 的方式解决此问题:

"start": "start npm run start:host & start npm run watch"

或者,为了避免额外的 cmd windows:

"start": "start npm run watch & npm run start:host"

正如我提到的,那当然是 Windows 特定的解决方案。我在上面引用的 显示了与平台无关的实现方法的选项。