2013-04-28 6 views
10

Я строю генератор, который частично включает в себя строительные леса из другого проекта, созданного с помощью exec. В зависимости от ввода пользователя мне нужно перемещать или удалять части этих лесов.Как перемещать или удалять файлы в генераторе Yeoman?

Прямо сейчас я делаю это с узлом fs.child_process.spawn и shelljs, но видя, как генератор Yo имеет mkdir, write, template и copy, мне интересно, если есть Yo способ перемещать или удалять файлы и каталоги.

ответ

5

Я просто использовать rimraf как это:

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

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

Не забудьте добавить rimraf как зависимость в файле package.json. Не уверен, что для этого есть встроенная функция, но до сих пор она работала нормально.

+0

Это хороший способ тоже. Упрекнул вас, но позволил этому оставаться без ответа до тех пор, пока не появится способ Йоман-апи. – RobW

+2

Должна быть встроенная функция, мне интересно, почему она не документирована, хотя специально, так как RC 1.0 сейчас отсутствует. – javiervd

1

Yeoman теперь поддерживает это через API fs, который является реализацией в файловой системе памяти.

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

File System Docs

1

Все еще не зарегистрированы, но это метод удаления (работает для меня):

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

Ссылка: Yeoman issue 1505