检查目标文件是否已存在

时间:2013-10-19 14:05:29

标签: javascript node.js gruntjs grunt-contrib-copy

目标

检查两个文件夹(src和目标文件夹)中是否存在具有相同名称的文件

尝试 尝试使用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文件夹中是否有任何文件。

2 个答案:

答案 0 :(得分:2)

您始终可以使用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);
    }
  }
},

答案 1 :(得分:0)

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

//检查文件

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

//检查文件