- Вот README и примеры: https://github.com/gruntjs/grunt-contrib-copy/blob/master/README.md .
- Вот соответствующая часть кода (которую я, по-видимому, не могу понять) из https://github.com/gruntjs/grunt-contrib-copy/blob/master/tasks/copy.js :
module.exports = function (grunt) { 'использовать строго'; var path = require ('путь'); grunt.registerMultiTask ('копировать', 'Копировать файлы.', function () { var kindOf = grunt.util.kindOf; var options = this.options ({ processContent: false, processContentExclude: [] }); var copyOptions = { процесс: options.processContent, noProcess: options.processContentExclude }; grunt.verbose.writeflags (параметры, 'Параметры'); var dest; var isExpandedPair; var tally = { директории: 0, файлы: 0 }; this.files.forEach (function (filePair) { isExpandedPair = filePair.orig.expand || ложный; filePair.src.forEach (function (src) { if (detectDestType (filePair.dest) === 'каталог') { dest = (isExpandedPair)? filePair.dest: unixifyPath (path.join (filePair.dest, src)); } else { dest = filePair.dest; } if (grunt.file.isDir (src)) { grunt.verbose.writeln ('Создание' + dest.cyan); grunt.file.mkdir (dest); tally.dirs ++; } else { grunt.verbose.writeln ('Копирование' + src.cyan + '->' + dest.cyan); grunt.file.copy (src, dest, copyOptions); tally.files ++; } }); });
javascript
gruntjs
Патрик
источник
источник
Ответы:
Expand позволяет указать, хотите ли вы создать целевой путь полностью (например:)
/path/missing1/missing2
или создать только последний каталог, когда существует его родительский каталог (/path/existing/missing
).источник
expand: true
, полагая, что он мне не нужен, а затем моя сборка перестала работать.Поскольку
expand
это часть Grunt, а не специфическая для grunt-contrib-copy, информацию о нем можно найти в API конфигурации файлов Grunt :Кроме того, кажется, что
dest
всегда будет считаться каталогом назначения, если установитьexpand
значениеtrue
.источник