module.exports = fonction (grognement) { 'use strict'; var path = require ('path'); grunt.registerMultiTask ('copier', 'Copier les fichiers.', fonction () { 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, fichiers: 0 }; this.files.forEach (fonction (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 ('Création' + dest.cyan); grunt.file.mkdir (dest); tally.dirs ++; } else { grunt.verbose.writeln ('Copie' + src.cyan + '->' + dest.cyan); grunt.file.copy (src, dest, copyOptions); tally.files ++; } }); });
Développer vous permet de spécifier si vous souhaitez créer le chemin de destination dans son intégralité (par exemple: /path/missing1/missing2
), ou créez le dernier répertoire uniquement lorsque son parent existe (/path/existing/missing
).
Étant donné que expand
fait partie de Grunt et n'est pas spécifique à grunt-contrib-copy, des informations à ce sujet peuvent être trouvées dans API de configuration de fichier de Grunt :
Définissez
expand
surtrue
pour activer les options suivantes:
cwd
Toutes les correspondances desrc
sont relatives à (mais n'incluent pas) ce chemin.src
Motif (s) à faire correspondre, par rapport àcwd
.dest
Préfixe du chemin de destination.ext
Remplacez toute extension existante par cette valeur dans les chemins générésdest
.extDot
Utilisé pour indiquer où se situe la période indiquant l'extension. Peut prendre soit'first'
(l'extension commence après la première période du nom de fichier) ou'last'
(l'extension commence après la dernière période) et est définie par défaut sur'first'
.flatten
Supprimez toutes les parties de chemin des chemins générésdest
.rename
Cette fonction est appelée pour chaque fichiersrc
correspondant (après le changement de nom et l'aplatissement de l'extension). Le chemindest
et le chemin d'accèssrc
correspondant sont transmis et cette fonction doit renvoyer une nouvelle valeurdest
. Si le mêmedest
est renvoyé plusieurs fois, chaquesrc
qui l'a utilisé sera ajouté à un tableau de sources pour lui.
De plus, il semble que dest
sera toujours considéré comme un répertoire de destination si vous définissez expand
sur true
.