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 %>'
模板字符串,并且指定的 foo
或 foo.bar
属性是非字符串(且不是 null
或 undefined
)值,它将展开为实际值。这与 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 ☆
如果一个或多个必需的配置属性缺失、为 null
或 undefined
,则使当前任务失败。可以指定一个或多个字符串或数组配置属性。
grunt.config.requires(prop [, prop [, ...]])
此方法也可在任务内部作为 this.requiresConfig
使用。