Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从gulp esdoc内部触发错误?_Javascript_Git_Documentation_Gulp - Fatal编程技术网

Javascript 如何从gulp esdoc内部触发错误?

Javascript 如何从gulp esdoc内部触发错误?,javascript,git,documentation,gulp,Javascript,Git,Documentation,Gulp,我正在使用gulp esdoc生成我的文档(它已经运行了) 今天我添加了一个git预提交钩子,它可以启动多个gulp任务,并在其中一个任务返回错误时防止任何提交 我可以处理大多数任务,但对于gulp esdoc,我不知道如何返回这样的错误以防止提交 我通过以下方式配置了我的esdoc: gulp.task('documentation', function() { gulp.src("./client/") .pipe(esdoc({ destination: "./do

我正在使用gulp esdoc生成我的文档(它已经运行了)

今天我添加了一个git预提交钩子,它可以启动多个gulp任务,并在其中一个任务返回错误时防止任何提交

我可以处理大多数任务,但对于gulp esdoc,我不知道如何返回这样的错误以防止提交

我通过以下方式配置了我的esdoc:

gulp.task('documentation', function() {
gulp.src("./client/")
    .pipe(esdoc({
        destination: "./docs",
        "title": "SOMETHING",
        index: "./README.md",
        "plugins": [{
            "name": "./README/docplugins/on-complete.js"
        }]
    }));
});
如您所见,我正在使用一个esdoc插件在生成文档后编写一些代码,以下是该插件的代码:

var colors = require('colors'),
gutil = require('gulp-util');

exports.onComplete = function(ev) {

    var output = require('../../docs/coverage.json');

    var expectedCoverage = 100; // todo : get from option instead
    var percentCovered = (output.actualCount / output.expectCount) * 100;

    if (percentCovered < expectedCoverage) {
        console.log('Code coverage is not sufficient (expected ' + expectedCoverage + '%, received only ' + percentCovered + '%) !!! Write some documentation or get out !'.red);
        // return false; // todo
    } else {
        console.log('Code coverage is complete, well done :)'.green);
        // return true;
    }

};
“lint”部分起作用,如果代码中有错误,它将阻止提交。但是使用gulp-esdoc的“文档”代码没有返回任何错误,因此提交完成了:(我不知道如何返回错误并防止git提交

我之所以需要这样做,是因为我希望加入我团队的初级开发人员被迫记录他们的代码:p

感谢您的帮助!

一个选项是抛出:

这将导致gulp进程以非零的退出代码退出。但是,它将在
STDERR
上留下一个相当难看的堆栈跟踪(尤其是因为
gulp esdoc
从插件中检索错误)

然后,另一个选项是使用特定的退出代码显式退出流程:

process.exit(1);
Node.js中的对象是一个全局对象,可以从任何地方访问,而无需
require()
it

throw new gutil.PluginError('esdoc', 'Something broke');
process.exit(1);