2013-09-04 6 views
6


Falls ich mehrere Unterverzeichnisse im 'js' -Verzeichnis im unten aufgeführten Beispiel Gruntfile habe und die Unterverzeichnisse unter einem anderen Zielverzeichnis behalten möchte, wie mache ich es?Konfigurieren von grunt-contrib-uglify zum Minimieren von Dateien unter Beibehaltung der Verzeichnisstruktur

Für z.B.

module.exports = function (grunt) { 
    grunt.initConfig({ 

     // define source files and their destinations 
     uglify: { 
      files: { 
       src: 'js/**/*.js', // source files mask 
       dest: 'minJs/', // destination folder 
       expand: true, // allow dynamic building 
       flatten: true, // remove all unnecessary nesting 
      } 
     } 
    }); 

    // load plugins 
    grunt.loadNpmTasks('grunt-contrib-uglify'); 

    // register at least this one task 
    grunt.registerTask('default', [ 'uglify' ]); 
}; 

In diesem Fall habe ich gezeigt * / Js, aber selbst wenn ich explizit ein einzelnes Unterverzeichnis wie js/xyz/* angeben. Js dann auch ist es nicht die Verzeichnisstruktur zu kopieren, es stattdessen scheint die Dateien im Unterverzeichnis unter minJs/Ordner im Beispiel zu platzieren. Was fehlt mir hier? Bitte helfen Sie.

Danke,
Paddy

Antwort

5

die Eigenschaft auf false flach ein.

Es gibt eine klare Erklärung auf der GitHub Grunzen Kopie readme

https://github.com/gruntjs/grunt-contrib-copy

Auszug:

$ grunt copy 
Running "copy:main" (copy) task 
Created 1 directories, copied 1 files 

Done, without errors. 
$ tree -I node_modules 

. 
├── Gruntfile.js 
├── dest 
│ └── src 
│  ├── a 
│  └── subdir 
└── src 
    ├── a 
    └── subdir 
     └── b 

5 directories, 4 files 
Flattening the filepath output: 

copy: { 
    main: { 
    expand: true, 
    cwd: 'src/', 
    src: '**', 
    dest: 'dest/', 
    flatten: true, 
    filter: 'isFile', 
    }, 
}, 
$ grunt copy 
Running "copy:main" (copy) task 
Copied 2 files 

Done, without errors. 
$ tree -I node_modules 
. 
├── Gruntfile.js 
├── dest 
│ ├── a 
│ └── b 
└── src 
    ├── a 
    └── subdir 
     └── b 

3 directories, 5 files 
+2

Danke @Nicholas, Wunder, wenn einige dieser Dinge für alle contrib Plugins üblich sind, Wenn dies der Fall ist, sollten sie nicht in einem einzigen Dokument von contrib plugin einen gemeinsamen Platz einnehmen. Ich hatte immer Schwierigkeiten mit diesen generischen Optionen, da die jeweiligen Aufgaben nichts spezifisch zu diesen haben - diese sind wahrscheinlich üblich, sich selbst zu grunzen und nicht irgendein Plugin spezifisch. Wie auch immer, danke für die Antwort. – Paddy

+2

@Paddy - ja, ich stimme zu, es ist auf der http://gruntjs.com/configuring-tasks Seite erwähnt, aber die Kopie Plugin bietet die beste Erklärung, wie es funktioniert –