Grunt的option API可以用來跨多任務共享參數,以及在命令行中訪問參數設置。
一個簡單的例子就是給你的目標(任務目標)打一個標記,標識任務是在開發(fā)階段還是暫存階段。在命令行中運行grunt deploy --target=staging
就會讓grunt.option('target')
返回"staging"
。
下面是一個在Gruntfile
中使用target
選項的例子:
grunt.initConfig({
compass: {
dev: {
options: {
/* ... */
outputStyle: 'expanded'
},
},
staging: {
options: {
/* ... */
outputStyle: 'compressed'
},
},
},
});
var target = grunt.option('target') || 'dev';
grunt.registerTask('deploy', ['compass:' + target]);
當你運行grunt deploy
時你的樣式表默認情況下為dev
目標,并且它會以展開的格式輸出CSS代碼。如果你運行grunt deploy --target=staging
, staging
目標會替代父級的dev
目標,同時它會以壓縮格式輸出CSS代碼。
grunt.option
也可以用在任務中,例如:
grunt.registerTask('upload', 'Upload code to specified target.', function(n) {
var target = grunt.option('target');
// do something useful with target here
});
grunt.registerTask('deploy', ['validate', 'upload']);
注意:可以只用只有鍵(屬性)而沒有值的方式來指定布爾值選項。例如,在命令行中運行grunt deploy --staging
會導致grunt.option('staging')
返回true
。
獲取或者設置一個選項。
grunt.option(key[, val])
可以通過在key
鍵上使用一個前置的no-
來否定buerhi選項。例如:
grunt.option('staging', false);
var isDev = grunt.option('no-staging');
// isDev === true
初始化grunt.option
設置。如果忽略參數中的initObject
選項就會初始化為一個空對象,否則設置為指定的initObject
。
grunt.option.init([initObject])
以數組的形式選為命令行參數選項。
grunt.option.flags()