我正在努力创造一个 吞 </跨度> 通过执行shell脚本更新项目中所有资产的任务。问题是它按预期执行然后挂起。
“使用严格”;
VAR 吞 </跨度> =要求(‘ 吞 </跨度> “), gutil = require(’ 吞 </跨度> -util’); exec = require(‘child_process’)。exec;var foreach = require(‘ 吞 </跨度> -foreach’);
gulp.task(‘update-assets’,function(){ 执行官
这是因为其性质 exec() 。什么exec()它允许你给它的命令“接管”当前进程。你可以做的是尝试类似的东西 child_process.spawn 。如果是守护进程。
exec()
child_process.spawn
好好看看 Child_Process文档 。我认为这可以帮助你获得良好的开端。
其他可能有用的选项包括修改脚本以抛出Gulp识别的退出代码,或使用超时来知道gulp任务何时终止。
更新:或者,您可以使用它,这是我在运行Web服务器时为我工作的。 shell.exec('./update_assets.sh', {async:true} );
shell.exec('./update_assets.sh', {async:true} );