嵌套对象文字在grunt.js文件中的含义是什么?

Chr*_*alo 8 javascript build gruntjs

我无法理解有时会出现在grunt.js文件中的嵌套.在下面的例子中,什么都嵌套状物体concat.dist,并min.dist意味着什么呢?是dist键引用另一个命名任务或者是它只是一个配置对象?在执行concatmin任务时究竟会调用什么?

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");
};
Run Code Online (Sandbox Code Playgroud)

ale*_*gui 10

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

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

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

grunt concat
Run Code Online (Sandbox Code Playgroud)

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

grunt concat:dist  
Run Code Online (Sandbox Code Playgroud)

只会执行dist目标.

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