2013-04-28 10 views
10

Buduję generator, który po części zawiera rusztowanie z innego projektu utworzonego za pomocą exec. W zależności od danych wprowadzanych przez użytkownika muszę przenieść lub usunąć części tego rusztowania.Jak przenieść lub usunąć pliki w generatorze Yeoman?

Teraz robię to z węzła fs.child_process.spawn i shelljs, ale widząc jak generator Yo ma mkdir, write, template i copy, zastanawiam się, czy jest jakiś Yo sposób przenieść lub usunąć pliki i katalogi.

Odpowiedz

5

wystarczy użyć rimraf tak:

MyGenerator.prototype.removeDir = function removeDir() { 
    var cb = this.async(), 
     self = this; 

    rimraf('path/to/dir', function() { 
     self.log.info('Removing dir'); 
     cb(); 
    }); 
}; 

Pamiętaj, aby dodać rimraf jako zależność w pliku package.json. Nie jestem pewien, czy jest w tym funkcja wbudowana, ale ta jak do tej pory działa dobrze.

+0

To dobry sposób zbyt. Wzbudziłem w tobie, ale pozwalając, aby pozostało bez odpowiedzi, dopóki nie będzie sposobu, aby to zrobić. – RobW

+2

Powinieneś mieć wbudowaną funkcję, zastanawiam się, dlaczego nie jest to udokumentowane specjalnie, ponieważ RC 1.0 jest już wyłączony. – javiervd

1

Yeoman teraz obsługuje to poprzez interfejs API fs, który jest implementacją systemu plików pamięci.

this.fs.move('source/file', 'dest/file'); this.fs.copy('source', 'dest');

File System Docs