8

我无法理解有时会出现在grunt.js文件中的嵌套。在以下示例中,嵌套对象的含义concat.distmin.dist含义是什么?键是dist引用另一个命名任务还是只是一个配置对象?concat执行andmin任务时到底调用了什么?

module.exports = function (grunt) {
  grunt.initConfig({
    // …
    concat: {
      dist: {
        src: ["<banner:meta.banner>", "<file_strip_banner:lib/main.js>"],
        dest: "dist/main.js",
      }
    },
    min: {
      dist: {
        src: ["<banner:meta.banner>", "<config:concat.dist.dest>"],
        dest: "dist/main.min.js",
      }
    },
    // …
  });

  // …
  grunt.registerTask("default", "lint qunit concat min");
};
4

2 回答 2

10

在 grunt 中,支持这种嵌套的任务称为多任务,嵌套的对象称为目标。假设您有以下多任务:

 concat: {
    dist: {
       src: ["<banner:meta.banner>", "<file_strip_banner:lib/main.js>"],
       dest: "dist/main.js",
    },
    dev: {
       (...)
    }
 }

这意味着您拥有多任务concat,其中包含目标distdev。您可以通过在控制台上键入任务名称来运行任何多任务的所有目标。例如:

grunt concat

将同时运行 concat 和 dev。另一方面,您还可以明确指定要运行的目标:

grunt concat:dist  

只会执行dist目标。

据我所知,如果您有两个具有相同名称目标的多任务(例如您的示例min.distconcat.dist),这并不意味着两个dist都以某种方式引用同一事物,它们只是碰巧共享同名。

于 2012-11-25T01:45:35.073 回答
0

就像答案状态一样,那些或“多目标”..我在这里做了一个关于多任务的视频

于 2013-01-28T17:11:25.800 回答