我有一个Grunt任务,如果--verbose
命令行标志打开,我想向控制台回复更多信息。
使用grunt.option('verbose')
查明该标志是否开启是不可能的。它似乎也不在grunt.package
的任何地方。
如何在任务中查看用户是否设置了详细标志?
答案 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
通过一些谷歌搜索,你可以找到模块为你提取参数。我不使用咕噜,所以无法帮助你。