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.template.process 方法),在遇到时在 Grunt 配置的上下文中。此方法由 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 使用。