2

目标

检查两个文件夹(源文件夹和目标文件夹)中是否存在同名文件

尝试 使用grunt-contrib-copy来遍历路径,但显然这不起作用。

copy: {
  unit: {
    expand: true,
    cwd: 'src',
    src: '**',
    dest: 'specs/unit',
    filter: function(filepath){
      if(grunt.file.exists(filepath)){
        return grunt.file.write(filepath,'');
      }
    }
  }
},

我的理论

grunt.file.exists似乎指向 src 文件夹而不是目标文件夹。所以它永远不会检查 src 文件夹中的文件是否真的存在于目标文件夹中,它只是检查 src 文件夹中是否有任何文件。

4

2 回答 2

3

您可以随时使用fs.existsSync()http ://nodejs.org/api/fs.html#fs_fs_exists_path_callback 。请务必使用同步功能,Grunt 不喜欢异步功能。

还; 确保你返回一个布尔值。

在您的顶部Gruntfile.js

var fs = require('fs');

在您的任务设置中;

copy: {
  unit: {
    expand: true,
    cwd: 'src',
    src: '**',
    dest: 'specs/unit',
    filter: function(filepath){
      return !fs.existsSync(filepath);
    }
  }
},
于 2014-06-26T04:19:10.200 回答
0

grunt.file.setBase('./destination')

// 检查文件

grunt.file.setBase('./src')

// 检查文件

于 2020-08-05T23:32:12.767 回答