我的 grunt 任务如何查看 --verbose 标志是否打开?

How can my grunt task see if --verbose flag is on?

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

grunt.option('verbose') 无法查明该标志是否打开。它似乎也不在 grunt.package.

中的任何地方

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

恕我直言,因为 grunt.option 仅适用于 grunt 使用的标志,它不会接受您提供的每个 shell 参数。

最简单的无模块解决方案是从 process.argv 解析你的标志,returns 一个数组。 您的标志将从位置 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

通过谷歌搜索,您可以找到为您提取参数的模块。我不使用 grunt,所以帮不了你太多。