如何动态地为多个目的地重用 grunt 复制任务?

How do I reuse a grunt copy task for multiple destinations dynamically?

我不想在 dest 属性中添加目的地,而是想让它动态化,这样当我从命令行 运行 任务或从 运行 它时,我可以分配目的地另一个任务。这样我就可以在调用任务时将文件复制到我想要的任何文件夹。

copy: {
        nightlyBuild: {
            files: [{
                expand: true,
                cwd: '../',
                src: ['index.html'],
                dest: 'destinations'
            }]
         }
      },

我假设我需要使用 grunt.option 和 grunt.config 但似乎无法正确使用。我有多个脚本,我想以类似的方式重用它们。

我认为您的方向是正确的。这应该有帮助

copy: {
    nightlyBuild: {
        files: [{
            expand: true,
            cwd: '../',
            src: ['index.html'],
            dest: '<%= dest %>',
        }]
    }
},

grunt.task.registerTask('copyTo', 'copy into a specific destination', function(dest) {
  if (arguments.length === 0) {
    grunt.log.writeln(this.name + ", missing destination");
  } else {
    grunt.log.writeln(this.name + " to " + dest);
    grunt.config.set('dest', dest);

    grunt.task.run([
      'copy:nightlyBuild'
    ]);
  }
});

然后您可以这样调用任务:grunt copyTo:mydestination