2016-04-19 8 views
1

Ich versuche, Yeoman zu lernen, aber die offizielle Dokumentation fehlt stark. Ich habe die remote() Funktion gefunden, die scheint, ein GIT-Repository herunterzuladen, aber was auch immer ich tue, ich kann es nicht zum Laufen bringen, ohne Fehler zu werfen.Download-Repository von Github

Hier ist, was ich habe:

this.remote('powerbuoy', 'SleekWP', 'master', function (err, remote) { 
    if (err) { 
     this.log(err); 

     return err; 
    } 

    remote.copy('.', this.destinationPath('wp-content/themes/sleek/')); 
}.bind(this)); 

Was ich hoffe, hier passieren würde, ist, dass die https://github.com/powerbuoy/SleekWP/ Repo heruntergeladen und zog nach wp-content/themes/glatt /. Was passiert stattdessen ist, bekomme ich:

fs.js:603 
    var r = binding.read(fd, buffer, offset, length, position); 
       ^

Error: EISDIR: illegal operation on a directory, read 

Gibt es eine bessere Dokumentation oder ein Tutorial erklären alle diese Grundlagen irgendwo? Ich würde gerne wissen, wie man Dateien kopiert, ohne dass jede Kopie zum Beispiel auf die Konsole gedruckt wird. Das alles scheint ziemlich einfach, aber http://yeoman.io/authoring/ ist sehr spärlich.

Antwort

2

Ok, also anscheinend war die Lösung remote.bulkDirectory() statt remote.copy() zu verwenden.

Edit: Allerdings, das Lesen der "Dokumentation" (kann kaum so genannt werden) es heißt, dass "Sie sollten diese Methode nie verwenden, es sei denn, es gibt keine andere Lösung." (http://yeoman.io/generator/actions_actions.html)

Also, wenn jemand kennt die richtige Weise, dies zu tun, würde ich gerne wissen.

wechselte ich auf das fs-extra-Paket und verwenden cacheRoot() und destinationRoot() das Verzeichnis zu kopieren statt:

fs.copy(this.cacheRoot() + '/username/Project/branch/', this.destinationPath('destination/path/')