如果未指定命令行参数,如何在grunt中强制自定义错误?

时间:2016-07-01 16:22:46

标签: gruntjs

我在grunt中有以下选项:

host: grunt.option('myoption')

但是,如果用户没有指定一个,我不希望我的任何任务工作。我如何在开始时检查这个?

1 个答案:

答案 0 :(得分:0)

使用自定义任务,您可以在运行构建工作流程之前检查是否满足特定条件。下面的示例检查选项是否已定义,如果不存在则失败:

function preFlightCheck() {
    if (!grunt.option('myoption')) {
        grunt.fail.fatal('myoption not set!');
    }
}

grunt.registerTask('preFlightCheck', preFlightCheck);

创建自定义任务后,将其添加到您的工作流程中:

grunt.registerTask('default', ['preFlightCheck', 'jslint', 'less']);

使用此方法时要记住一件事:如果使用--force标志调用工作流,grunt将继续执行任务,即使preFlightCheck失败也是如此。或者,您可以使用preFlightCheck设置grunt.option('myoption')的值,如果它丢失了:

function preFlightCheck() {
    if (!grunt.option('myoption')) {
        grunt.log.warn('myoption not provided, defaulting to fooBar');
        grunt.option('myoption', 'foobar');
    }
}