在Grunt.js中使用clean或clean-empty任务删除空文件夹



我正在尝试创建一个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.

我使用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时,testxml目录连同它的所有内容被删除。

我想你的问题是你在目录路径中使用通配符来告诉grunt删除live_preview的所有子目录。如果您想要删除顶级目录,那么只需使用它。其中包含的所有文件和目录将被递归删除。思考rm -rf

试题:

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

相关内容

最新更新