2013-09-04 45 views
6


Nel caso in cui io abbia più sottodirectory nella directory 'js' nell'esempio Gruntfile postato sotto, e voglio conservare le sottodirectory in una directory di destinazione diversa, come lo faccio?Come configurare grunt-contrib-uglify per minimizzare i file mantenendo la struttura di directory

Ad es.

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 questo caso, ho mostrato * / .js, ma anche se a specificare in modo esplicito una singola sottodirectory come js/xyz/*. Js poi anche non sta copiando la struttura di directory, invece sembra mettere i file nella sottodirectory sotto minJs/folder nell'esempio. Cosa mi manca qui? Per favore aiuto.

Grazie,
Paddy

risposta

5

impostare la proprietà appiattire su false.

C'è una spiegazione chiara sul grugnito copia github readme

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

Estratto:

$ 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

Grazie @Nicholas, mi chiedo se alcune di queste cose sono comuni a tutti i plugin contrib, in tal caso, non dovrebbero essere collocati in un posto comune piuttosto che in un singolo documento del plugin contrib. Ho sempre avuto difficoltà con queste opzioni generiche, in quanto le rispettive attività non hanno nulla di specifico in queste: queste sono probabilmente comuni a grugnire se stesse e non a plugin specifici. Comunque grazie per la risposta. – Paddy

+2

@Paddy - sì, sono d'accordo, è menzionato nella pagina http://gruntjs.com/configuring-tasks ma il plugin di copia fornisce la migliore spiegazione di come funziona –

Problemi correlati