2013-04-28 15 views
10

Sto costruendo un generatore che in parte include scaffolding da un altro progetto creato con exec. A seconda dell'input dell'utente, ho bisogno di spostare o eliminare parti di questo ponteggio.Come devo spostare o eliminare file in un generatore Yeoman?

In questo momento mi sto facendo con il nodo di fs.child_process.spawn e shelljs, ma visto che il generatore di Yo ha mkdir, write, template e copy, mi chiedo se c'è un Yo modo per spostare o eliminare i file e le directory.

risposta

5

mi basta usare rimraf come questo:

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

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

ricordare di aggiungere rimraf come dipendenza nel file package.json. Non sono sicuro se ci sia una funzione integrata per questo, ma questo ha funzionato bene per me finora.

+0

Questo è un buon modo troppo. Ti ha messo in svantaggio, ma lasciando che questo rimanga senza risposta fino a quando non c'è un modo per farlo in stile Yeoman. – RobW

+2

Dovrebbe esserci una funzione incorporata, mi chiedo perché non è documentata anche se specialmente dato che RC 1.0 è ora disponibile. – javiervd

1

Yeoman ora supporta questo tramite l'API fs, che è un'implementazione di file system in memoria.

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

File System Docs

1

Ancora non non è documentato, ma questo è il metodo delete (funziona per me):

this.fs.delete('file/to/delete'); 

Link: Yeoman issue 1505

Problemi correlati