非常教程

Grunt参考手册

API

grunt.config

Gruntfile 中获取针对当前项目的配置数据。

注意,任何标记为 ☃ (unicode snowman) 的方法也是可以直接通过 grunt 对象访问的;任何标记为 ☆ (white star) 的方法都可以在task内部通过 this 对象访问的。请知晓。

初始化配置数据

注意,下面列出的方法也可以通过 grunt 对象访问,访问形式为 grunt.initConfig

grunt.config.init ☃

为当前项目初始化一个配置对象。其中传入的 configObject 参数可以用在后续的task中,可以通过 grunt.config 方法访问。几乎每个项目的 Gruntfile 都会调用此方法。

grunt.config.init(configObject)

注意,任何 <% %> 模板字符串只会在取到配置数据后才被处理。

下面的案例展示了针对 grunt-contrib-jshint插件 中的 jshint task的配置数据:

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

查看 Getting started 指南可以获取更多的配置案例。

此方法还可以以 grunt.initConfig 的形式访问。

获取配置数据

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

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

grunt.config

从项目的 Grunt 配置中获取或者设置一个值。这个方法作为其他方法的别名;如果传递两个参数,grunt.config.set被调用,另一方面grunt.config.get也被调用。Get or set a value from the project's grunt configuration. This method serves as an alias to other methods; if two arguments are passed, grunt.config.set is called, otherwise grunt.config.get is called.

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中的.点号。这应该用于包含点号的属性名。除了 给定的propString中的. 点,这应该用于包含点的属性名称。

grunt.config.escape(propString)

grunt.config.merge

Added in 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'],
}

总之,variable()中files定义的数组的第一个值会覆盖配置call()中指定的第一个值。confighello.jsinitConfigGruntfile.js

需要配置数据

注意,下面列出的方法都可以在task内部通过 this 对象访问,访问形式为 this.requiresConfig

grunt.config.requires ☆

如果需要的配置属性有一个或多个不存在、值为nullundefined,当前task将失败。此方法可以指定一个或多个字符串、配置属性数组作为参数。

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

此方法在task内部以 this.requiresConfig 形式调用。

Grunt

Grunt 是基于 Node.js 的项目构建工具,它可以自动运行你所设定的任务。Grunt 拥有数量庞大的插件,几乎任何你所要做的事情都可以用 Grunt 实现。

Grunt目录

1.入门
2.API
3.安装
4.常见问题
5.项目脚手架