2014-03-04 5 views
29

Angesichts der folgenden Quellbaum zu kopieren:Grunzen-contrib-Kopie - Ordner ignorieren, wenn

dev 
丨- psd 
    丨- psd.psd 
    丨- png.png 
丨- css 
    丨- css.css 
丨- image 
    丨- 1.jpg 
    丨- 2.png 
丨html.html 

Wie kann ich in die Kneipe Verzeichnis kopieren Sie die psd-Ordner zu ignorieren, wie unten gesehen?

pub 
丨- css 
    丨- css.css 
丨- image 
    丨- 1.jpg 
    丨- 2.png 
丨html.html 

Ich habe versucht, die folgenden:

{ 
expand: true, 
src: ['dev/**/*', '!dev/psd/**/*'], 
dest: 'pub/' 
} 

Aber dies führt zu einem leeren psd Verzeichnis

Antwort

59

Versuchen folgende Gruntfile.js. Es ignoriert das PSD-Verzeichnis. Lösung gefunden in folgenden question.

module.exports = function(grunt) { 

    // Project configuration. 
    grunt.initConfig({ 
     copy: { 
      main: { 
      src: ['**/*', '!**/psd/**'], 
      expand: true, 
      cwd: 'dev', 
      dest: 'pub', 
      } 
    } 
    }); 

    // Load the plugin that provides the "copy" task. 
    grunt.loadNpmTasks('grunt-contrib-copy'); 

    // Default task(s). 
    grunt.registerTask('default', ['copy']); 

}; 

Beispiel-Setup.

mkdir gruntQuestion1 
cd gruntQuestion1/ 
mkdir dev 
mkdir dev/psd 
mkdir dev/css 
mkdir dev/image 
touch dev/html.html 
touch dev/psd/psd.psd 
touch dev/psd/png.png 
touch dev/css/css.css 
touch dev/image/1.jpg 
touch dev/image/2.png 


atilla$ rm -rf pub/ 
atilla$ grunt 
Running "copy:main" (copy) task 
Created 2 directories, copied 4 files 

Done, without errors. 
atilla$ tree pub/ 
pub/ 
├── css 
│   └── css.css 
├── html.html 
└── image 
    ├── 1.jpg 
    └── 2.png 

2 directories, 4 files  
+5

gut zu wissen, dass Sie Ihre ausschließliche dir mit ** wickeln müssen. Das funktionierte für mich: 'src: ['**/*', '! **/bower_components/**', '! **/node_modules/**', '! Gitignore', '! .jshintrc', '! ! *. json '] ' – Mattijs

+0

zusatz' '! *. txt', '! *. md'' auch. – vanduc1102

+1

Danke für die Antwort-- Was ich sehe, ist, dass es den Ordner auf dem Ziel erstellt, aber nur nicht mit Dateien füllt. Es ist ein triviales Artefakt, das ich ignorieren kann, wenn es nötig ist, aber es stört mich ein wenig! Irgendwelche Zeiger? –