黑人的命也是命

grunt.config

访问在 Gruntfile 中定义的项目特定配置数据。

请注意,任何标有 ☃(Unicode 雪人)的方法也可以直接在 grunt 对象上使用,任何标有 ☆(白色星星)的方法也可以在 this 对象上的任务中使用。仅供参考。

初始化配置数据

请注意,以下方法也可以在 grunt 对象上作为 grunt.initConfig 使用。

grunt.config.init ☃

为当前项目初始化配置对象。指定的 configObject 由任务使用,可以使用 grunt.config 方法访问。几乎每个项目的 Gruntfile 都会调用此方法。

grunt.config.init(configObject)

请注意,任何指定的 <% %> 模板字符串将在检索配置数据时被处理。

此示例包含 grunt-contrib-jshint 插件 jshint 任务的示例配置数据

grunt.config.init({
  jshint: {
    all: ['lib/*.js', 'test/*.js', 'Gruntfile.js']
  }
});

有关更多配置示例,请参阅入门指南

此方法也可以作为 grunt.initConfig 使用。

访问配置数据

以下方法允许通过点分隔字符串(如 'pkg.author.name')或属性名称部分数组(如 ['pkg', 'author', 'name'])访问 Grunt 配置数据。

请注意,如果指定的属性名称包含 . 点,则必须使用反斜杠对其进行转义,例如 'concat.dist/built\\.js'。如果指定了零件数组,Grunt 将使用 grunt.config.escape 方法在内部处理转义。

grunt.config

从项目的 Grunt 配置中获取或设置值。此方法用作其他方法的别名;如果传递了两个参数,则调用 grunt.config.set,否则调用 grunt.config.get

grunt.config([prop [, value]])

grunt.config.get

从项目的 Grunt 配置中获取值。如果指定了 prop,则返回该属性的值,如果未定义该属性,则返回 null。如果未指定 prop,则返回整个配置对象的副本。模板字符串将使用 grunt.config.process 方法递归处理。

grunt.config.get([prop])

grunt.config.process

处理一个值,在遇到 <% %> 模板时,在 Grunt 配置的上下文中递归扩展它们(通过 grunt.template.process 方法)。此方法由 grunt.config.get 自动调用,但 grunt.config.getRaw 调用。

grunt.config.process(value)

如果任何检索到的值完全是单个 '<%= foo %>''<%= foo.bar %>' 模板字符串,并且指定的 foofoo.bar 属性是非字符串(而不是 nullundefined)值,则它将扩展为 实际 值。结合 grunt 的任务系统自动展平数组,这将非常有用。

grunt.config.getRaw

从项目的 Grunt 配置中获取原始值,而不处理 <% %> 模板字符串。如果指定了 prop,则返回该属性的值,如果未定义该属性,则返回 null。如果未指定 prop,则返回整个配置对象的副本。

grunt.config.getRaw([prop])

grunt.config.set

在项目的 Grunt 配置中设置一个值。

grunt.config.set(prop, value)

请注意,任何指定的 <% %> 模板字符串仅在检索配置数据时才会被处理。

grunt.config.escape

转义给定 propString 中的 . 点。这应该用于包含点的属性名称。

grunt.config.escape(propString)

grunt.config.merge

在 0.4.5 中添加

将指定的 configObject 的属性递归合并到当前项目配置中。数组和普通对象属性递归合并,而其他值类型被覆盖。

grunt.config.merge(configObject)

例如,您可以使用此方法将配置选项、目标等附加到已定义的任务中

grunt.config.merge({
  watch: {
    files: ["path/to/files"],
    tasks: ["task"]
  }
});

数组值根据其索引合并。考虑以下代码

grunt.initConfig({
  jshint: {
    files: ['Gruntfile.js', 'src/**/*.js'],
  }
);

var config = {
  jshint: {
    files: ['hello.js'],
  }
};

grunt.config.merge(config);

它将导致如下所示的配置

jshint: {
  files: ['hello.js', 'src/**/*.js'],
}

总之,在 config 变量中定义的 files 数组的第一个值 (hello.js) 覆盖了在 initConfig 配置调用 (Gruntfile.js) 中指定的第一个值。

要求配置数据

请注意,下面列出的方法也可以在 this 对象上的任务中作为 this.requiresConfig 使用。

grunt.config.requires ☆

如果缺少一个或多个必需的配置属性、nullundefined,则使当前任务失败。可以指定一个或多个字符串或数组配置属性。

grunt.config.requires(prop [, prop [, ...]])

此方法也可以在任务中作为 this.requiresConfig 使用。