Tengo una tarea de trago. Si falta un archivo (foobar.json), quiero que arroje un mensaje de error personalizado.

Ejemplo:

var gulp = require('gulp');
var plumber = require('gulp-plumber');
var notify = require("gulp-notify");
var foobar = './foobar.json';

gulp.task('my-task'), function() {
  if (typeof foobar === 'undefined') {
    console.log('foobar.json file is required to run my-task. Blau Blau Blau.');
  }
  else {
    something.init();
  }
});

Por supuesto, console.log no funciona. ¿Cómo hago esto?

No marque como duplicado. No hay duda de que se ocupa específicamente de este simple problema de buscar un archivo y enviar un mensaje simple. Todas las preguntas que pude encontrar requerían mucha más complejidad que este simple problema.

0
heart.cooks.mind 1 ago. 2017 a las 18:07

2 respuestas

La mejor respuesta

Esto funcionó sin la necesidad de módulos adicionales:

var gulp = require('gulp');
var foobar = './foobar.json';

gulp.task('my-task'), function() {
  if (foobar.length) {
    console.log('A foobar.json file is required to run my-task. Blau Blau Blau.');
  }
  else {
    something.init();
  }
});
-1
heart.cooks.mind 1 ago. 2017 a las 17:58

Utilice Gutil

var fs = require('fs');
var gulp = require('gulp');
var foobar = './foobar.json';

const gutil = require("gulp-util");

gulp.task('my-task'), function() {
  if (!fs.existsSync(foobar)) {
    throw new gutil.PluginError({
      plugin: 'my-task',
      message: `cannot read "${foobar}"`
    });
  }
});
1
Hitmands 1 ago. 2017 a las 15:33