我想在某些更改时重新启动gulp
。通过将以下内容放在gulpfile
spawn('gulp', [], { stdio: 'inherit'});
但是,一旦gulp
以这种方式重新启动,就不再通过终端使用 Ctrl + C 正确杀死该进程。如果我通过终端启动gulp
,我可以捕获 Ctrl + C 信号,但是如果gulp
是通过spawn
启动的话{+ 1}} {1}}。我怎样才能捕获' SIGINT'为产卵?
答案 0 :(得分:2)
好的,这里有可能遇到这个问题的人的全部故事。根据我一直在阅读的内容,无论何时你想从gulp中重新启动gulp,你只需使用:
spawn('gulp', [], { stdio: 'inherit'});
process.exit();
我没有在我的问题中提到process.exit()
,因为我没想到它会影响 Ctrl + C 的使用。事实上,由于我的服务器是ExpressJS,每当我从内部重新启动gulp后使用 Ctrl + C 时,我会得到端口仍在使用中的错误({{1} })。显然,所有节点进程都没有被关闭。从代码中删除行Error: listen EADDRINUSE
后,我就可以使用 Ctrl + C 并成功关闭所有进程。下面是与此问题相关的gulpfile和终端输出中的有用代码。
process.exit()