57 votes

comment configurer grunt.js pour minifier les fichiers séparément

il y a des fichiers js dans static / js /

     1. a.js
    2. b.js
    3. c.js   
 

comment configurer grunt.js pour obtenir les fichiers ci-dessous:

     1. a.min.js
    2. b.min.js
    3. c.min.js
 

pour le moment, je dois taper un nom de fichier spécifique:

   min: {
    dist: {
    src:  'js/**/*.js',
    dest: 'js/min/xxx.min.js'
   }
 }
 

52voto

Frank Parent Points 620

Avait le même problème et a trouvé une solution qui réduirait automatiquement tous mes scripts séparément:

 uglify: {
      build: {
        files: [{
            expand: true,
            src: '**/*.js',
            dest: 'build/scripts',
            cwd: 'app/scripts'
        }]
      }
    }
 

23voto

Sindre Sorhus Points 20538

Dans Grunt 0.4, vous pouvez spécifier plusieurs paires dest / src comme ceci:

 uglify: {
    dist: {
        files: {
            'dist/main.js': 'src/main.js',
            'dist/widget.js': 'src/widget.js'
        }
    }
}
 

17voto

Rafa Heringer Points 91

Ou vous pouvez utiliser expandMapping, comme ceci:

 min: {
    files: grunt.file.expandMapping(['path/*.js', 'path2/*.js'], 'destination/', {
        rename: function(destBase, destPath) {
            return destBase+destPath.replace('.js', '.min.js');
        }
    })
}
 

Et la sortie:

chemin / test.js => destination / chemin / test.min.js
path2 / foo.js => destination / path2 / foo.min.js

14voto

Sharmila Points 21

Cela ci-dessous gruntjs fonctionne pour moi pour créer des fichiers minifiés pour tous les fichiers js sous un répertoire

 module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
    build: {
        files: [{
            expand: true,
            src: '**/*.js',
            dest: 'build/scripts',
            cwd: 'public_html/app',
        ext: '.min.js'
        }]
      }
    }
  });

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

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

};
 

6voto

DavidHyogo Points 1213

De la grunt docs pour min:

Cette tâche est une tâche multiple, ce qui signifie que grunt itérera automatiquement sur toutes les cibles minimales si aucune cible n'est spécifiée.

Donc, vous pouvez faire ceci:

   min: {
    min_a: {
       src:  'a.js',
       dest: 'a.min.js'
    },
    min_b: {
       src:  'b.js',
       dest: 'b.min.js'
    },
    min_c: {
       src:  'c.js',
       dest: 'c.min.js'
 }
 

Le nom 'dist' n'a rien de spécial pour ces tâches.

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