2014-05-14 60 views
0
干净或干净的空任务

我想创建一个咕噜任务清理掉所有的文件,子目录的目录及其文件等等删除空文件夹,在Grunt.js

我可以删除所有的文件,但文件夹始终保持。

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. 

回答

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']); 

当我运行咕噜清洁测试testXmls目录与所有被删除它的内容。

我认为你的问题是你在目录路径中使用通配符来告诉grunt删除live_preview的所有子目录。如果你想要删除顶级目录,那么就使用它。包含在里面的所有文件和目录将被递归地删除。想想RM -rf

尝试:

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

而且,在你的终端,当你看到:

Deleting live_preview/styles 

这只是意味着它删除样式目录 - 这是给你的整个路径/ styles和live_preview是该路径的一部分,这就是您看到它的原因 - 没有任何指示live_preview本身被删除。所以输出实际上是正确的。

0

folders选项的存在,它看起来像你正在使用grunt-cleanempty包。如果是这样,这里的问题是你已经在clean任务中嵌套了它的配置,并且它属于顶层。这里创建的是clean的子任务,其中folders选项不明白。当您grunt clean时,子任务正在运行,您的src中指定的子文件夹正在被删除。

如果您使用的不是grunt-cleanempty包......你应该:-)

Link to grunt-cleanempty