我正在尝试创建一个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.
答案 0 :(得分:1)
我使用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的所有子目录。如果您希望删除顶级目录,那么只需使用它。内部包含的所有文件和目录将以递归方式删除。想想rm -rf
尝试:
clean: {
preview: ["live_preview"],
dist: ["dist"]
}
另外,在您的终端中,当您看到:
Deleting live_preview/styles
这只是意味着它删除了样式目录 - 它为你提供了/ styles和live_preview的完整路径,这就是你看到它的原因 - 那里&#39 ; s什么都没有表明live_preview本身被删除。所以输出实际上是正确的。
答案 1 :(得分:0)
由于存在folders
选项,您似乎正在使用grunt-cleanempty
包。如果是这样,那么问题在于您已将其配置嵌套在clean
任务中,并且它在顶层属于它自己。您在此处创建的是clean
的子任务,其中包含folders
选项,但它并不了解。当您grunt clean
时,子任务正在运行,并且src
中指定的子文件夹将被删除。
如果您没有使用grunt-cleanempty
套餐......您可能应该: - )