通过forEach循环执行任务以复制具有数组长度的任务

loop grunt task thru forEach to duplicate a task with an array lenght

本文关键字:数组 任务 循环 forEach 执行任务 复制 通过      更新时间:2023-09-26

不能得到Grunt JS任务运行器的正确解决方案,所以这是我的问题。

目标:重复一个任务多次。次数是数组的长度。在数组中,有一些"名称",我用它们来构建路径(源和目标),以便在文件夹中复制文件。

我正在尝试复制任务(grunt-contrib-copy)。

我能够获得复制任务的数据,但不是在正确的地方:src有时是空的,有时是错误的。dest文件夹也一样。

我怀疑我的Javascript有问题,或者它是不可能实现的(传递这些参数grunt复制任务或其他任务…)

    grunt.config(['copy'], {
  themeCss : {
      files: (function() {
        var arr = ["site1","site2","site3"];
        var out = {};
        arr.forEach(function (element, index){
          var src = 'srcfolder/' + arr[index] + '/theme.css';
          var dest = 'destfolder/' + arr[index];
          out[src] = src;
          out[dest] = dest;
        });
          return out;
      }())
    },
}),

当我发现你的问题时,我正在寻找几乎完全相同的这个。经过一些调整,我让它工作了。试试这个:

grunt.config(['copy'], {
   themeCss : {
      files: (function() {
         var arr = ["site1","site2","site3"];
         var out = [];
         arr.forEach(function (element, index){
            var src = 'srcfolder/' + arr[index] + '/theme.css';
            var dest = 'destfolder/' + arr[index];
            out.push({
               src: src,
               dest: dest
            });
         });
         return out;
      })()
   }
})