- Aqui está o README e exemplos: https://github.com/gruntjs/grunt-contrib-copy/blob/master/README.md .
- Aqui está a parte relevante do código (que aparentemente não consigo entender) de https://github.com/gruntjs/grunt-contrib-copy/blob/master/tasks/copy.js :
module.exports = function (grunt) { 'use estrito'; var path = require ('path'); grunt.registerMultiTask ('copiar', 'Copiar arquivos.', function () { var kindOf = grunt.util.kindOf; var options = this.options ({ processContent: false, processContentExclude: [] }); var copyOptions = { processo: options.processContent, noProcess: options.processContentExclude }; grunt.verbose.writeflags (opções, 'Opções'); var dest; var isExpandedPair; var tally = { dirs: 0, arquivos: 0 }; this.files.forEach (function (filePair) { isExpandedPair = filePair.orig.expand || falso; filePair.src.forEach (function (src) { if (detectDestType (filePair.dest) === 'diretório') { dest = (isExpandedPair)? filePair.dest: unixifyPath (path.join (filePair.dest, src)); } outro { dest = filePair.dest; } if (grunt.file.isDir (src)) { grunt.verbose.writeln ('Criando' + dest.cyan); grunt.file.mkdir (dest); tally.dirs ++; } outro { grunt.verbose.writeln ('Copiando' + src.cyan + '->' + dest.cyan); grunt.file.copy (src, dest, copyOptions); tally.files ++; } }); });
javascript
gruntjs
Patrick
fonte
fonte
Respostas:
Expand permite que você especifique se deseja criar o caminho de destino completo (por exemplo:)
/path/missing1/missing2
ou apenas criar o último diretório quando seu pai existir (/path/existing/missing
).fonte
expand: true
, imaginando que não precisava dela, e minha construção parou de funcionar.Como
expand
faz parte do Grunt e não é específico para grunt-contrib-copy, as informações sobre ele podem ser encontradas na API de configuração de arquivo do Grunt :Além disso, parece que
dest
sempre será considerado um diretório de destino se definidoexpand
comotrue
.fonte