- Aquí está el archivo README y ejemplos: https://github.com/gruntjs/grunt-contrib-copy/blob/master/README.md .
- Aquí está la parte relevante del código (que aparentemente no puedo entender) de https://github.com/gruntjs/grunt-contrib-copy/blob/master/tasks/copy.js :
module.exports = function (gruñido) { 'uso estricto'; var ruta = require ('ruta'); grunt.registerMultiTask ('copiar', 'Copiar archivos.', function () { var kindOf = grunt.util.kindOf; var options = this.options ({ processContent: falso, processContentExclude: [] }); var copyOptions = { proceso: options.processContent, noProcess: options.processContentExclude }; grunt.verbose.writeflags (opciones, 'Opciones'); var dest; var isExpandedPair; var tally = { dirs: 0, archivos: 0 }; this.files.forEach (function (filePair) { isExpandedPair = filePair.orig.expand || falso; filePair.src.forEach (function (src) { if (detectDestType (filePair.dest) === 'directorio') { dest = (isExpandedPair)? filePair.dest: unixifyPath (ruta.join (filePair.dest, src)); } más { dest = filePair.dest; } if (grunt.file.isDir (src)) { grunt.verbose.writeln ('Creando' + dest.cyan); grunt.file.mkdir (dest); tally.dirs ++; } más { grunt.verbose.writeln ('Copiando' + src.cyan + '->' + dest.cyan); grunt.file.copy (src, dest, copyOptions); tally.files ++; } }); });
javascript
gruntjs
Patricio
fuente
fuente
Respuestas:
Expandir le permite especificar si desea crear la ruta de destino en su totalidad (por ejemplo:)
/path/missing1/missing2
, o solo crear el último directorio cuando exista su padre (/path/existing/missing
).fuente
expand: true
, pensando que no la necesitaba, y luego mi compilación dejó de funcionar.Dado que
expand
es parte de Grunt, y no es específico de grunt-contrib-copy, se puede encontrar información al respecto en la API de configuración de archivos de Grunt :Además, parece
dest
que siempre se considerará un directorio de destino si se configuraexpand
entrue
.fuente