如果变量未定义,如何在Gulp中抛出自定义错误消息

时间:2017-08-01 15:07:07

标签: node.js gulp

我有一个gulp任务。如果文件丢失(foobar.json),我希望它抛出一个自定义错误消息。

示例:

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();
  }
});

当然,console.log不起作用。我该怎么做?

请不要标记为重复。毫无疑问,专门处理这个检查文件和抛出简单消息的简单问题。我能找到的所有问题都要比这个简单的问题复杂得多。

2 个答案:

答案 0 :(得分:1)

使用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 :(得分:-1)

无需额外模块即可使用:

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();
  }
});