如果--verbose标志打开,我的grunt任务怎么看?

时间:2017-07-12 12:23:04

标签: javascript gruntjs

我有一个Grunt任务,如果--verbose命令行标志打开,我想向控制台回复更多信息。

使用grunt.option('verbose')查明该标志是否开启是不可能的。它似乎也不在grunt.package的任何地方。

如何在任务中查看用户是否设置了详细标志?

1 个答案:

答案 0 :(得分:1)

这是imho,因为grunt.option仅适用于使用grunt的标志,它不会占用您提供的每个shell参数。

最无模块的解决方案是从process.argv解析你的标志,返回一个数组。 您的旗帜将从 2 位置开始,因此,如果--verbose是第一个参数,您可以process.argv[2] How do I pass command line arguments?

来声明它

您可以通过创建javascript文件轻松测试它

  var args = process.argv;
  process.argv.forEach( (val, index, array) => {
        var flag = val.replace(new RegExp('-', 'g'), '');
        console.log(flag);
  });

并在你的shell中调用它

node testParams.js --argument1 -t. 

结果将如下所示

hakim@cortana:~/Sites/DOODLINGS $ node testParams.js --verbose -t
/usr/local/Cellar/node/7.5.0/bin/node
/Users/hakim/Sites/DOODLINGS/testParams.js
verbose
t

通过一些谷歌搜索,你可以找到模块为你提取参数。我不使用咕噜,所以无法帮助你。