gulpfile.js
var shell = require('gulp-shell');
gulp.task('startRedis', shell.task([
'redis-2.8.15/src/redis-server > /dev/null &'
]));
当我运行上面的startRedis gulp任务时,它启动redis服务器但从不退出。
$gulp startRedis
[19:03:42] Using gulpfile ~/myhome/gulpfile.js
[19:03:42] Starting 'startRedis'...
如果我停止redis服务器,则返回。不确定有什么问题,请帮忙。
答案 0 :(得分:1)
假设您只是希望立即完成任务,您可能会更好地直接使用child_process.exec
:
var exec = require('child_process').exec;
gulp.task('startRedis', function() {
exec('redis-2.8.15/src/redis-server', function(err, stdout, stderr) {
if (err) {
console.log(err, stdout, stderr);
}
});
});
如果你想让gulp立即退出,从而创建一个僵尸redis-server进程,这可能会更复杂。
答案 1 :(得分:0)
我已经使用gulp-shell启动我的redis服务器,但每次在我的节点应用程序之前都没有启动
使用exec = require('child_process').exec;
我可以做得更安全
gulp.task('dev-redis', function() {
exec('redis-server --port 7777 --notify-keyspace-events KExe', function (err, stdout, stderr) {
console.log(stdout);
console.log(stderr);
});
});
gulp.task('dev',['dev-redis'], function() {
/*
* Add on('change').on('restart') allow to add listeners
* Even if you don't precise callback functions, it triggers the change/restart event
* */
nodemon({ script: 'index.js', nodeArgs: ['--debug'], env: { 'NODE_ENV': 'development' } })
.on('change', [])
.on('restart', function () {
console.log('restarted!');
});
});