Удалите пустые папки с чистой или чистой пустой задачей в Grunt.js

Я пытаюсь создать задачу Grunt для очистки каталога от всех файлов, подкаталогов, их файлов и т. Д.

Я могу удалить все файлы, но папки всегда остаются.

 clean: {
        preview: ["live_preview>/**/*"],
        dist: ["dist/**/*"]
    },
    cleanempty: {
        options: {
            folders: true
        },
        src: ['live_preview/**', 'tmp/**']
    },

Я пытаюсь опустошить live_preview папка. Я пробовал несколько комбинаций подстановочных знаков. Еще более загадочным является то, что вывод терминала из -v заставляет это выглядеть, как будто это работало, но пустые папки все еще там.

Verifying property cleanempty.src exists in config...OK
Files: live_preview, live_preview/fonts, live_preview/images, live_preview/partials,      live_preview/partials/elements, live_preview/scripts, live_preview/scripts/data, live_preview/styles, live_preview/views, tmp, tmp/styles, tmp/styles/live_preview.css, tmp/styles/live_preview.css.map, tmp/styles/theme.css, tmp/styles/theme.css.map -> src
Options: folders
Options: files, folders, force=false, no-write=false
Options: files, folders, force=false, no-write=false
Cleaning live_preview/views...Deleting live_preview/views...OK
OK
Cleaning live_preview/styles...Deleting live_preview/styles...OK
OK
Cleaning live_preview/scripts/data...Deleting live_preview/scripts/data...OK
OK
Cleaning live_preview/partials/elements...Deleting live_preview/partials/elements...OK
OK
Cleaning live_preview/images...Deleting live_preview/images...OK
OK
Cleaning live_preview/fonts...Deleting live_preview/fonts...OK
OK

Done, without errors.

2 ответа

Я использую задачу Grunt для очистки временного каталога, и вся папка удаляется при запуске задачи. Я предполагаю, что вы используете тот же плагин, но просто чтобы быть уверенным: https://github.com/gruntjs/grunt-contrib-clean

Вот упрощенная версия моей установки:

clean: {
    tests: ['testXmls'] // testXmls is a directory in the top level of my app
}

grunt.registerTask('clean-tests', ['clean:tests']);

Когда я запускаю grunt clean-tests, каталог testXmls удаляется со всем его содержимым.

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

Пытаться:

clean: {
    preview: ["live_preview"],
    dist: ["dist"]
}

Кроме того, в вашем терминале, когда вы видите:

Deleting live_preview/styles

Это просто означает, что он удаляет каталог стилей - он дает вам полный путь к / styles, и live_preview является частью этого пути, поэтому вы видите его - ничто не указывает на то, что сам live_preview удален. Так что вывод на самом деле правильный.

По наличию folders вариант, похоже, вы используете grunt-cleanempty пакет. Если это так, проблема заключается в том, что вы вложили его конфигурацию в clean Задача и она принадлежит сама по себе на высшем уровне. То, что вы создали здесь, является подзадачей clean с folders вариант, который он не понимает. Когда ты grunt clean, подзадача запускается и те подпапки, указанные в вашем src удаляются.

Если вы не используете grunt-cleanempty пакет... вы, вероятно, должны:-)

Ссылка на grunt-cleanempty

Другие вопросы по тегам