- Berikut ini README dan contohnya: https://github.com/gruntjs/grunt-contrib-copy/blob/master/README.md .
- Berikut adalah bagian kode yang relevan (yang tampaknya tidak saya mengerti) dari https://github.com/gruntjs/grunt-contrib-copy/blob/master/tasks/copy.js :
module.exports = function (mendengus) { 'gunakan ketat'; var path = membutuhkan ('path'); grunt.registerMultiTask ('copy', 'Salin file.', function () { var kindOf = grunt.util.kindOf; var options = this.options ({ processContent: false, processContentExclude: [] }); var copyOptions = { proses: options.processContent, noProcess: options.processContentExclude }; grunt.verbose.writeflags (opsi, 'Opsi'); var dest; var isExpandedPair; var tally = { dirs: 0, file: 0 }; this.files.forEach (function (filePair) { isExpandedPair = filePair.orig.expand || Salah; filePair.src.forEach (function (src) { if (detectDestType (filePair.dest) === 'direktori') { dest = (isExpandedPair)? filePair.dest: unixifyPath (path.join (filePair.dest, src)); } lain { dest = filePair.dest; } if (grunt.file.isDir (src)) { grunt.verbose.writeln ('Membuat' + dest.cyan); grunt.file.mkdir (dest); tally.dirs ++; } lain { grunt.verbose.writeln ('Menyalin' + src.cyan + '->' + dest.cyan); grunt.file.copy (src, dest, copyOptions); tally.files ++; } }); });
javascript
gruntjs
Patrick
sumber
sumber
Jawaban:
Perluas memungkinkan Anda menentukan apakah Anda ingin membuat jalur tujuan secara penuh (misalnya:)
/path/missing1/missing2
, atau hanya membuat direktori terakhir jika induknya ada (/path/existing/missing
).sumber
expand: true
, mengira saya tidak membutuhkannya, dan kemudian bangunan saya berhenti berfungsi.Karena
expand
merupakan bagian dari Grunt, dan tidak spesifik untuk grunt-contrib-copy, informasi tentangnya dapat ditemukan di API konfigurasi file Grunt :Selain itu, sepertinya
dest
akan selalu dianggap sebagai direktori tujuan jika disetelexpand
ketrue
.sumber