2016-11-09 68 views
1

是否有可能檢查用戶是否指定了標誌,例如。檢查用戶是否指定了標誌?

gulp --test=yes 

我想通過獲得該標誌:

yargs.argv.test; 

如果他們沒有停止一飲而盡腳本和輸出的錯誤信息?

回答

1

如果它是需要每一項任務全局標誌你可以檢查它的第一件事就是你的gulpfile和exit()如果尚未提供:

var gulp = require('gulp'); 
var yargs = require('yargs'); 

if (!yargs.argv.test) { 
    console.error('You need to provide the --test flag!'); 
    process.exit(1); 
} 

gulp.task('someTask', function() { 
    console.log('Value of --test flag is :' + yargs.argv.test); 
}); 

gulp.task('default', function() { 
    console.log('Value of --test flag is :' + yargs.argv.test); 
}); 

如果標誌僅適用於一某些任務只是在特定的任務中檢查它:

var gulp = require('gulp'); 
var yargs = require('yargs'); 

gulp.task('someTask', function() { 
    if (!yargs.argv.test) { 
    console.error('You need to provide the --test flag for someTask!'); 
    process.exit(1); 
    } 
    console.log('Value of --test flag is :' + yargs.argv.test); 
}); 

gulp.task('default', function() { 
    console.log('This task does not need the --test flag!'); 
}); 
+0

謝謝,will process.exit(1);停止進一步處理?另外'1'是什麼意思? – panthro

+0

是的,吞嚥過程將立即終止,不再進行進一步的處理。當您終止一個流程時,您可以向父流程發送一個信號(退出代碼)。發送'0'表示成功終止(沒有出錯)。發送'1'(或任何其他不是'0'的信號)表示出現了問題(例如用戶輸入錯誤)。 –

相關問題