Как динамически повторно использовать задачу копирования ворчания для нескольких мест назначения?

Вместо добавления адресатов в атрибут dest я хотел бы сделать его динамическим, чтобы я мог назначать адресатов при запуске задачи из командной строки или при запуске из другой задачи. Таким образом, я могу скопировать файл в любую папку (папки), которую я хочу, всякий раз, когда я вызываю задачу.

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

Я предполагаю, что мне нужно использовать grunt.option и grunt.config, но я не могу понять это правильно. У меня есть несколько сценариев, которые я хотел бы повторно использовать аналогичным образом.


person Jared Farago    schedule 11.05.2015    source источник


Ответы (1)


Я думаю, вы были на правильном пути. Это должно помочь

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

person Rachid    schedule 12.05.2015
comment
Большое спасибо, эта конфигурация и взаимодействие опций многое объясняют и помогут мне со всеми моими скриптами. - person Jared Farago; 12.05.2015