0

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

2 回答 2

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 是该路径的一部分,这就是您看到它的原因-没有任何迹象表明 live_preview 本身已被删除。所以输出实际上是正确的。

于 2014-05-14T18:23:29.763 回答
0

通过该folders选项的存在,看起来您正在使用该grunt-cleanempty软件包。如果是这样,这里的问题是您已将其配置嵌套在clean任务中,并且它属于自己的顶层。您在这里创建的是一个子任务,它clean带有一个folders它不理解的选项。当您grunt clean时,子任务正在运行,并且您指定的那些子文件夹src将被删除。

如果您不使用该grunt-cleanempty软件包...您可能应该:-)

链接到 grunt-cleanempty

于 2014-12-08T17:33:04.883 回答