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