module.exports = function(grunt) {
...
}
根据Gruntfile.js中的代码我们可以发现,该JS文件会暴露grunt
我们来看看他是个什么东西
module.exports = function(grunt){
console.log(typeof grunt);
console.log(grunt);
}
终端中运行获得以下结果
object
{
util: {
namespace: { get: [Function], set: [Function], exists: [Function] },
hooker: {
override: [Function],
preempt: [Function],
filter: [Function],
hook: [Function],
orig: [Function],
...
首先可以看出他是个object对象 对他进行输出后会得到一连串的信息
我们一次来介绍下其中的部分API
更多API请去参考grunt中文官网API页面
grunt.config.init
grunt.config.init 这个方法是grunt.initConfig的别名
获取配置数据
以下方法允许通过点分隔字符串访问Grunt配置数据,但请注意:
- 如果指定的属性名包含.dot(例如index\.js)它必须用字面反斜杠转义
- 如果指定了一个parts数组,Grunt将使用grunt.config.escape方法
module.exports = function(grunt){
grunt.initConfig({
height:50,
side:"frunck",
bar:"a<%= side%>b"
})
//set给当前的initConfig设置键-值
grunt.config.set("username", "pikaqiu");
console.log(grunt.config.get("username"));
//get获取initConfig中的配置文件信息
console.log(grunt.config.get("height"));
//getRaw获取initConfig中的原始配置文件信息(未经过模板)
console.log(grunt.config.getRaw("bar"));
//merge给当前的initConfig传入object对象
grunt.config.merge({
user:'Li Hua',
age:18,
sex:'male'
});
console.log(grunt.config.get("user"));
grunt.loadNpmTasks('grunt-contrib-cssmin');
}
grunt.registerTask 创建任务
此方法是 grunt.task.registerTask 方法的别名
grunt.task.registerTask(taskName, description, taskList)
grunt.registerMultiTask 创建复合任务
此方法是 grunt.task.registerMultiTask 方法的别名
复合任务是指在不指定目标(target)时,将依次执行其所包含的所有已命名的子属性
(sub-properties)(也就是 目标) 。除了默认的属性和方法外,还可以通过this对象访
问复合任务独有的属性
如果出现下面的情况,你自定义的任务出现参数,可以通过冒号传递参数
例如:
grunt default:Mike
module.exports = function(grunt){
grunt.registerTask('default',function(arg){
console.log("hello,"+arg);
});
}
grunt.task.requires
如果某个任务失败了,那么这个任务也不执行
grunt.task.requires(taskName);
grunt.task.exists
判断某个名字的任务是否已经存在了
grunt.task.exists(name)
grunt.task.renameTask(oldname, newname)
grunt.renameTask
此方法是 grunt.task.renameTask 方法的别名
如果一个任务已经被重命名了
重命名任务
grunt.loadTasks
此方法是 grunt.task.loadTasks 方法的别名
grunt.loadNpmTasks
此方法是 grunt.task.loadNpmTasks 方法的别名
从指定的 Grunt 插件中加载任务
此插件必须通过npm安装到本地,并且是参照 Gruntfile 文件的相对路径
grunt.warn
此方法是 grunt.fail.warn 方法的别名
grunt.fatal
此方法是 grunt.fail.fatal 方法的别名
grunt.file.defaultEncoding 设置编码格式
grunt.file.defaultEncoding = ‘utf8’;
grunt.file.read
读取并返回文件的内容
返回值为一个字符串
grunt.file.readJSON
读取一个文件的内容,将其按照JSON格式解析,返回结果
grunt.file.readYAML
读取一个文件的内容,将其按照YAML格式解析,返回结果
grunt.file.write
将指定的内容写入文件中,如果需要,将创建文件路径中所有不存在的目录。字符串将按照指定的字符编码进行编码,Buffers 将会按照指定的方式写入磁盘。
module.exports = function(grunt){
grunt.file.write("./file.js","console.log('hello')");
console.log(grunt.file.read("./file.js"));
}
命令行参数
grunt.option