如何将输出结果输出到控制台?

我想把我的拼写检查结果输出到控制台,而不是一个文件,我认为这应该工作,因为据我所知它吞噬返回一个stream。

相反,我得到一个错误:

TypeError: Object #<Stream> has no method 'read' 

这是我的代码

 gulp.task('spellcheck', function() { var patterns = [{ // Strip tags from HTML pattern: /(<([^>]+)>)/ig, replacement: '' }]; var spellSuggestions = [{ pattern: / [^ ]+? \(suggestions:[Az, ']+\)/g, replacement: function(match) { return '<<<' + match + '>>>'; } }]; var nonSuggestions = [{ pattern: /<<<.+>>>|([^\s]+[^<]+)/g, replacement: function(match) { if (match.indexOf('<') == 0) { return '\n' + match + '\n'; } return ''; } }]; var toConsole = gulp.src('./_site/**/*.html') .pipe(frep(patterns)) .pipe(spellcheck()) .pipe(frep((spellSuggestions))) .pipe(frep((nonSuggestions))); var b = toConsole.read(); console.log(b); }); 

stream中没有读取方法。 你有两个select:

  1. 使用实际的控制台stream: process.stdout
  2. 使用数据事件到console.log。

在代码中实现:

  gulp.task('spellcheck', function () { var patterns = [ { // Strip tags from HTML pattern: /(<([^>]+)>)/ig, replacement: '' }]; var nonSuggestions = [ { pattern: /<<<.+>>>|([^\s]+[^<]+)/g, replacement: function(match) { if (match.indexOf('<')==0) { return '\n' + match +'\n'; } return ''; } }]; var a = gulp.src('./_site/**/*.html') .pipe(frep(patterns)) .pipe(spellcheck(({replacement: '<<<%s (suggestions: %s)>>>'}))) .pipe(frep(nonSuggestions)) ; a.on('data', function(chunk) { var contents = chunk.contents.toString().trim(); var bufLength = process.stdout.columns; var hr = '\n\n' + Array(bufLength).join("_") + '\n\n' if (contents.length > 1) { process.stdout.write(chunk.path + '\n' + contents + '\n'); process.stdout.write(chunk.path + hr); } }); });