在src/和dist/之间同步删除.html个对应.pug文件的文件

Sync delete .html files corresponding to .pug files between src/ and dist/

我使用 grunt-contrib-pug 从 src/ 编译我的 .pug 文件并将相应的 .html 文件分发到 dist/。这是我的哈巴狗任务配置(用 .coffee 编写):

compile:
    options: pretty: false
    files: [ {
        expand: true
        cwd: 'src/'
        src: [ '**/*.pug', '!includes/**' ]
        dest: 'dist/'
        ext: '.html'
    } ]

当我从 src/ 删除一个 .pug 文件时,有什么方法可以同步删除 dist/ 中对应的 html 文件?我知道您可以使用 grunt-contrib-clean 然后再次编译 pug 文件,但是在处理大型代码库时这不是很省时。

根据 I-LOVE-2-REVIVE, I looked further into Grunt's file API 的引用,在此基础上,这是我想出的解决方案:

grunt.event.on 'watch', (action, filepath, target) ->
  if action == 'deleted' && /pug/.test(filepath)

     file = 'dist' + filepath.slice(3, -3) + 'html'
     grunt.file.delete file
     # Log deleted files
     grunt.log.write '\n' + filepath + ' deleted > ' + file + ' deleted.\n'

效果很好!