我的 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,所以帮不了你太多。
我有一个 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,所以帮不了你太多。