6 votes

Comment configurer grunt-contrib-uglify pour réduire les fichiers tout en conservant la structure du répertoire ?

Dans le cas où j'ai plusieurs sous-répertoires sous le répertoire 'js' dans l'exemple de Gruntfile affiché ci-dessous, et que je veux conserver les sous-répertoires dans un répertoire de destination différent, comment puis-je le faire ?

Par exemple

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' ]);
};

Dans ce cas, j'ai montré * / .js, mais même si je spécifie explicitement un seul sous-répertoire comme js/xyz/*.js, il ne copie pas non plus la structure du répertoire, il semble plutôt mettre les fichiers dans le sous-répertoire sous le dossier minJs/ dans l'exemple. Qu'est-ce que j'ai manqué ici ? Merci de m'aider.

Merci,
Paddy

5voto

Nicholas Murray Points 5726

Définissez la propriété flatten à false.

Il y a une explication claire dans le readme de grunt copy sur github.

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

Extrait :

$ 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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X