gulp-shell throwing Error: write EPIPE while using pg_dump

gulp-shell throwing Error: write EPIPE while using pg_dump

我正在使用 gulp-shell 执行 pg_dump 命令来创建我的 postgres 数据库的简单转储。命令 gulp postgres-dump 将成功创建转储但有时它会在我输入密码并挂起一段时间后抛出以下错误。

events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: write EPIPE
    at exports._errnoException (util.js:746:11)
    at WriteWrap.afterWrite (net.js:775:14)

这是我的(简体)gulpfile.js:

var gulp                = require('gulp'),
    plugins             = require('gulp-load-plugins')();

    plugins.shell       = require('gulp-shell');

var dbDumpPath = 'db_dumps/';

/**
 * Create postgres dump of the database
 */
gulp.task('postgres-dump', function() {
    return gulp.src('*.js', {read: false})
           .pipe(plugins.shell([
                'pg_dump database_name > ' + dbDumpPath +'database_bak.sql -h example.com -U databaseuser'
            ]));
});

我可以在命令行中 运行 pg_dump 命令,没有问题。需要明确的是,即使有时会发生错误,也会发生数据库转储。

我怎样才能更正这个错误?

再次阅读gulp-shell docs,我决定尝试shorthand版本。最终运行正常,没有抛出任何错误。

gulp.task('postgres-dump', plugins.shell.task([
  'pg_dump database_name > ' + dbDumpPath +'database_bak.sql -h example.com -U databaseuser'
]));