Что делает опция "раскрыть" в grunt-contrib-copy? Все примеры используют его, но документы ничего не говорят о том, что он делает
- Вот 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('path'); grunt.registerMultiTask('copy', 'Copy files.', function() { var kindOf = grunt.util.kindOf; var options = this.options({ processContent: false, processContentExclude: [] }); var copyOptions = { process: options.processContent, noProcess: options.processContentExclude }; grunt.verbose.writeflags(options, 'Options'); var dest; var isExpandedPair; var tally = { dirs: 0, файлы: 0 }; this.files.forEach(function(filePair) { isExpandedPair = filePair.orig.expand || false; filePair.src.forEach(function(src) { if (detectDestType(filePair.dest) === 'directory') { 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++; } }); });
2 ответа
Решение
Развернуть позволяет указать, хотите ли вы создать путь назначения в полном объеме (например: /path/missing1/missing2
) или создайте только последний каталог, когда его родитель существует (/path/existing/missing
).
Поскольку expand
является частью Grunt и не относится к grunt-contrib-copy; информацию об этом можно найти в API конфигурации файлов Grunt:
Задавать
expand
вtrue
включить следующие опции:
cwd
Всеsrc
совпадения относительно (но не включают) этого пути.src
Шаблон (ы), чтобы соответствовать, относительноcwd
,dest
Префикс пути назначения.ext
Заменить любое существующее расширение на это значение в сгенерированномdest
пути.extDot
Используется для указания того, где находится период, указывающий расширение. Можно взять либо'first'
(расширение начинается после первого периода в имени файла) или'last'
(расширение начинается после последнего периода) и по умолчанию установлено'first'
,flatten
Удалить все части пути из сгенерированногоdest
пути.rename
Эта функция вызывается для каждого подобранногоsrc
файл, (после расширения переименование и выравнивание).dest
и соответствуетsrc
путь передается, и эта функция должна возвращать новыйdest
значение. Если то же самоеdest
возвращается более одного раза, каждыйsrc
который использовал его, будет добавлен в массив источников для него.
Кроме того, похоже, dest
всегда будет считаться каталогом назначения, если настройка expand
в true
,