17

我在哪里可以获得命令行参数的句柄?

例如grunt dist --env=UAT。我如何获得价值env

当我使用它时,如果未在命令行上设置它,我将如何为其分配默认值?

4

2 回答 2

36

您可以使用grunt.option()或更具体地说:

var env = grunt.option('env') || 'default';

如果参数不存在,则获取env参数或默认为字符串。'default'

于 2012-11-13T07:10:59.367 回答
0

我发现在 grunt 中对默认值的处理非常缺乏。上面概述的方法有效,但是当您有很多选择时,它很快就会变得乏味。

一个小辅助函数可以缓解这个问题:

function defaultOptions(options) {
  for(var key in options) {
    if(options.hasOwnProperty(key) && !grunt.option(key)) {
      grunt.option(key, options[key]);
    }
  }
}

然后你可以像这样使用:

defaultOptions({
  env : "staging"
});

在 CLI 中:

grunt // { env : "staging" }
grunt --env=UAT // { env : "UAT" }
于 2015-10-01T09:36:49.690 回答