执行'open'命令后,Gulp任务不会继续

时间:2016-08-30 02:24:49

标签: gulp xcodebuild

我正在运行一些gulp任务。每当我到达open命令时,它就会被执行中断。以下示例

gulp.task('xcodeIPa', ['xcodeOpen'],() =>
    run('second command').exec()
);

gulp.task('xcodeOpenProject', () =>
        run('open -a Xcode ./platforms/ios/myProject.com.xcodeproj').exec()
);

我的xcodeOpenProject打开我的xcode,之后不允许xcodeIPa继续。请问我该如何打开并继续?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

改为使用child_process.spawn()

var spawn = require('child_process').spawn;

gulp.task('xcodeOpenProject', () =>
    spawn('open', ['-a', 'Xcode', './platforms/ios/myProject.com.xcodeproj'])
)

请注意,当您使用 CTRL + C 终止gulp时,这可能会结束XCode进程。如果您想确保即使在gulp进程终止后XCode仍在运行,您应该将detached:true选项传递给spawn()

gulp.task('xcodeOpenProject', () =>
    spawn('open', ['-a', 'Xcode', './platforms/ios/myProject.com.xcodeproj'], {detached:true})
)