Grunt前端自动化构建工具使用总结

博客分类: 前端 阅读次数: *

Grunt前端自动化构建工具使用总结

配置Grunt

从官网下载package.json和Gruntfile.js 文件放到项目根目录,并对文件进行修改配置.

  • package.json //项目自动化所依赖的相关插件。
  • Gruntfile.js //项目自动化工作流配置文件(本文讲解的重点)。

package.json 文件的基本内容:

package

Gruntfile.js的配置

Grunt的task配置都是在 Gruntfile 中的grunt.initConfig 方法中指定的。此配置主要是以任务名称命名的属性,也可以包含其他任意数据。一旦这些代表任意数据的属性与任务所需要的属性相冲突,就将被忽略。 此外,由于这本身就是JavaScript,因此你不仅限于使用JSON;你可以在这里使用任何有效的JavaScript。必要的情况下,你甚至可以以编程的方式生成配置。 gruntfile 再比如,当运行一个任务时,Grunt会自动查找配置对象中的同名属性。多任务(multi-task)可以通过任意命名,的“目标(target)”来定义多个配置。在下面的案例中,concat任务有名为foo和bar两个目标,而uglify任务仅仅只有一个名为bar目标。

grunt.initConfig({
concat: {
    // 这里是concat任务的配置信息。
    foo: {
      // concat task "foo" target options and files go here.
    },
    bar: {
      // concat task "bar" target options and files go here.
    },
  },
  uglify: {
    // 这里是uglify任务的配置信息
    bar: {
      // uglify task "bar" target options and files go here.
    },
  },
  // 任意数据。
  my_property: 'whatever',
  my_src_files: ['foo/*.js', 'bar/*.js'],
});

同时指定任务(task)和目标(target),例如grunt concat:foo或者grunt concat:bar,将只会处理指,定目标(target)的配置,而运行grunt concat将遍历所有目标(target)并依次处理。注意,如果一个任务使用grunt.task.renameTask重命名过,Grunt将在配置对象中查找以新的任务名命名的属性。

注册任务

如果指定了一个任务列表,新任务将是这一个或多个指定任务的别名。当运行此 “任务别名” 时,在taskList中指定的每个任务都会按照其出现的顺序依次执行。taskList参数必须是一个任务组

grunt.registerTask(taskName, [description, ] taskList)

下面的任务别名案例中定义了一个 ‘default’ 任务,如果运行Grunt时没有指定任何任务,它将自动执行’jshint’、’qunit’、’concat’ 和 ‘uglify’ 任务

grunt.registerTask('default', ['jshint', 'qunit', 'concat', 'uglify']);

如果你没有指定一个任务,并且你已经定义一个名为 “default” 的任务,那么该任务将会默认被执行

总结

一句话总结Grunt执行过程:定义任务、注册任务、执行任务。暂时先总结这些吧,连续好几天没睡好了,睡觉了。