Grunt的option API被用来在多个任务之间共享参数、访问命令行中设置的参数。
一个简单的案例就是为一个目标(target)指定一个用于区别开发期还是过渡期的标志。在命令行中: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
目标会被执行,输出压缩之后的CSS。
grunt.option
还可以在task中使用,如下:
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']);
注意,boolean参数可以仅指定key,而省略value。例如,在命令行执行 grunt deploy --staging
将会使grunt.option('staging')
返回 true
。
获取或设置一个选项。
grunt.option(key[, val])
boolean类型的选项可以通过在 key
前添加 no-
来取消。案例如下:
grunt.option('staging', false);
var isDev = grunt.option('no-staging');
// isDev === true
初始化 grunt.option
。如果省略 initObject
,option将被初始化为一个空对象,否则将被设置为initObject
。
grunt.option.init([initObject])
将所有参数作为命令行参数数组返回。
grunt.option.flags()