Grunt学习--API

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值