Вопрос

Goal

To check if a file with a same name exists in two folders (src and destination folder)

Attempt Tried using grunt-contrib-copy to traverse the path but obviously this is not working.

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

My Theory

grunt.file.exists seems to be pointing to the src folder instead of destination folder. So it never checks if the files in src folder actually exists in the destination folder it just checks if there are any files in src folder.

Это было полезно?

Решение

You can always use fs.existsSync(): http://nodejs.org/api/fs.html#fs_fs_exists_path_callback. Be sure to use the sync one, Grunt doesn't like async functions.

Also; make sure you return a boolean.

At the top of your Gruntfile.js:

var fs = require('fs');

In your task settings;

copy: {
  unit: {
    expand: true,
    cwd: 'src',
    src: '**',
    dest: 'specs/unit',
    filter: function(filepath){
      return !fs.existsSync(filepath);
    }
  }
},

Другие советы

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

// check for file

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

// check for file

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top