2017-07-12 50 views
0

我有一個Grunt任務,如果--verbose命令行標誌打開,我想回復一些更多的信息到控制檯。我的咕嚕聲如何判斷--verbose標誌是否打開?

查明該標誌是否打開不可能與grunt.option('verbose')。它似乎也不在grunt.package的任何地方。

如何從任務中看到用戶是否設置了詳細標誌?

+0

可能重複的[我如何傳遞命令行參數?](https://stackoverflow.com/questions/4351521/how-do-i-pass-command-line-arguments) –

+0

我爲你發佈了一個答案,但也標記你的問題作爲dup的https://stackoverflow.com/questions/4351521/how-do-i-pass-command-line-arguments/4351548 –

回答

1

這是imho,因爲grunt.option只適用於咕嚕使用的標誌,它並不需要你提供的每個shell參數。

最模糊的解決方案是解析來自process.argv[2]的標誌,該標誌返回一個數組。 您的旗幟將在位置開始,所以如果--verbose是第一個參數,你會要求它通過process.argvHow 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); 
    }); 

,並調用它測試在你的外殼node testParams.js --argument1 -t。結果看起來像這樣

[email protected]:~/Sites/DOODLINGS $ node testParams.js --verbose -t 
/usr/local/Cellar/node/7.5.0/bin/node 
/Users/hakim/Sites/DOODLINGS/testParams.js 
verbose 
t 

隨着一些谷歌搜索,你可以找到模塊來爲你提取參數。我不使用咕嚕聲,所以無法幫助你。