Как перемещать или удалять файлы в генераторе Yeoman?

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

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

Ответ 1

Я просто использую 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. Не уверен, есть ли встроенная функция для этого, но это работает для меня до сих пор.

Ответ 2

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

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

Документы файловой системы

Ответ 3

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

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

Ссылка: Йоменский номер 1505