node.js - node - npm
¿Cómo hago que los resultados de Gulp sean enviados a la consola? (1)
Quiero poner los resultados de mi corrector ortográfico en la consola en lugar de hacerlo en un archivo y creo que esto debería funcionar ya que, según tengo entendido, devuelve una secuencia.
En su lugar me sale un error:
TypeError: Object #<Stream> has no method ''read''
Aqui esta mi codigo
gulp.task(''spellcheck'', function() {
var patterns = [{
// Strip tags from HTML
pattern: /(<([^>]+)>)/ig,
replacement: ''''
}];
var spellSuggestions = [{
pattern: / [^ ]+? /(suggestions:[A-z, '']+/)/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);
});
No hay un método de lectura en una secuencia. Tienes dos opciones:
- Utilice la secuencia de consola real: process.stdout
- Utilice el evento de datos para console.log.
Implementado en código:
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);
}
});
});