- Hier ist die README-Datei und Beispiele: https://github.com/gruntjs/grunt-contrib-copy/blob/master/README.md .
- Hier ist der relevante Teil des Codes (den ich anscheinend nicht verstehen kann) von https://github.com/gruntjs/grunt-contrib-copy/blob/master/tasks/copy.js :
module.exports = function (grunzen) { 'use strict'; var path = require ('path'); grunt.registerMultiTask ('copy', 'Copy files.', function () { var kindOf = grunt.util.kindOf; var options = this.options ({ processContent: false, processContentExclude: [] }); var copyOptions = { Prozess: options.processContent, noProcess: options.processContentExclude }; grunt.verbose.writeflags (Optionen, 'Optionen'); var dest; var isExpandedPair; var tally = { dirs: 0, Dateien: 0 }; this.files.forEach (Funktion (filePair) { isExpandedPair = filePair.orig.expand || falsch; filePair.src.forEach (Funktion (src) { if (detectDestType (filePair.dest) === 'Verzeichnis') { dest = (isExpandedPair)? filePair.dest: unixifyPath (path.join (filePair.dest, src)); } else { dest = filePair.dest; }} if (grunt.file.isDir (src)) { grunt.verbose.writeln ('Erstellen' + dest.cyan); grunt.file.mkdir (dest); tally.dirs ++; } else { grunt.verbose.writeln ('Kopieren' + src.cyan + '->' + dest.cyan); grunt.file.copy (src, dest, copyOptions); tally.files ++; }} }); });
javascript
gruntjs
Patrick
quelle
quelle
Antworten:
Mit Erweitern können Sie angeben, ob Sie den Zielpfad vollständig erstellen möchten (z. B. :)
/path/missing1/missing2
oder nur das letzte Verzeichnis erstellen möchten, wenn das übergeordnete Verzeichnis vorhanden ist (/path/existing/missing
).quelle
expand: true
, weil ich dachte, ich brauche sie nicht, und dann funktionierte mein Build nicht mehr.Da
expand
es sich um einen Teil von Grunt handelt und nicht spezifisch für Grunt-Contrib-Copy ist, finden Sie Informationen dazu in der Dateikonfigurations-API von Grunt :Außerdem scheint es, als würde
dest
es immer als Zielverzeichnis betrachtet, wenn esexpand
auf gesetzt wirdtrue
.quelle