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 %>'
模板字符串,并且指定的 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
使用。