我有一个 node.js 应用程序,并且创建了一个本机插件。 (如果您需要背景信息,可以创建 Node.js 的本机插件像这样 https://nodejs.org/api/addons.html).
在我的开发环境中,我希望它监视源文件(在本例中是 C++ 源文件),并在 C++ 源文件更改时自动重建我的插件,并在构建完成后自动重新启动节点应用程序。
我确信有不止一种方法可以实现这一点,但我尝试了nodemon。但我不知道如何让 nodemon 在重新启动应用程序之前等待构建完成。
我认为 npm 也可以通过脚本(也许是某种监视包)自行完成此操作。因此,如果有更简单的方法,我愿意接受其他方法。
因此,当我的任何源文件发生更改时,我真正需要的只是node-gyp build
在重新启动工作流程中的正确位置运行(停止节点、重新编译、重新启动节点)。现在它会重建插件并重新启动应用程序无需等待构建完成,这是不可取的。
这是我的 nodemon.json 文件:
{
"watch": [
"addon/"
],
"ignore": [
"addon/build/"
],
"events": {
"restart": "cd addon && node-gyp build"
},
"ext": "js,json,cc,h"
}
这不起作用,因为“重新启动”就像一个事件,因为我运行 node-gyp 的脚本会触发并执行,但它不会阻止重新启动,直到构建完成。
我希望它更像中间件,它会在应用程序终止后但在重新启动应用程序之前运行构建脚本。我也咨询过这个相关的nodemon问题 https://github.com/remy/nodemon/issues/310,但没有关于如何实现这一点的具体建议。
我需要更改一些内容,以便在源更改时自动进行重建(node-gyp 步骤),然后很好地重新启动。
注意:稍后我将重组它,以便它仅在相关 C++ 源文件更改时重建插件,并在 .js 文件更改时重新启动应用程序,而不重建 C++ 插件,但首先我需要弄清楚获取节点 - gyp 构建步骤在正确的时间发生。