2015-09-02 1 views
0

Grunt ne pas concat et uglify mes fichiers javascript lorsque ces fichiers sont modifiés et les changements sont surveillés.Grunt: Pourquoi la concatation et l'effacement ne fonctionnent pas lorsque la tâche de surveillance voit un changement de fichier?

Si je cours grunt concat les fichiers js sont concaténés comme prévu.

Si je lance ensuite grunt uglify, les fichiers sont corrigés comme prévu.

Cependant quand je lance simplement grunt la tâche montre commence et je change un fichier javascript j'obtiens ceci:

$ grunt 
Running "watch" task 
Waiting... 
>> File "src/js/test.js" changed. 
Running "uglify:my_target" (uglify) task 
>> Destination dest/js/app.min.js not written because src files were empty. 
>> No files created. 

Pourquoi ça marche quand je lance des commandes individuelles, mais pas lorsque la modification des fichiers sont surveillés pour?

Voici mon fichier grognement:

module.exports = function(grunt) { 

// Project configuration. 
grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 

    concat: { 
     options: { 
     separator: ';', 
     }, 
     dist: { 
     src: ['src/**/*.js'], 
     dest: 'dest/js/app.js', 
     }, 
    }, 

    uglify: { 
    my_target: { 
     files: { 
      'dest/js/app.min.js': ['<%= concat.dist.dest %>'] 
     } 
    } 
    }, 


    compass: {     // Task 
    dist: {     // Target 
     options: {    // Target options 
     sassDir: 'scss', 
     cssDir: 'css', 
     environment: 'production' 
     } 
    }, 
    dev: {     // Another target 
     options: { 
     sassDir: 'scss', 
     cssDir: 'css' 
     } 
    } 
    }, 

    watch: { 
    css: { 
     files: '**/*.scss', 
     tasks: ['compass'] 
    }, 

    js: { 
     files: 'src/js/*.js', tasks: [ 'uglify' ] 
    }, 
    } 
}); 

grunt.loadNpmTasks('grunt-contrib-uglify'); 
grunt.loadNpmTasks('grunt-contrib-compass'); 
grunt.loadNpmTasks('grunt-contrib-watch'); 
grunt.loadNpmTasks('grunt-contrib-concat'); 
grunt.registerTask('default',['watch', 'compass', 'concat', 'uglify']); 
}; 

Répondre

0

Je fixe en changeant la section watch. J'ai également changé my_target en build.

Mon tout fichier grognement ressemble à ceci

module.exports = function(grunt) { 

// Project configuration. 
grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 

    concat: { 
     options: { 
     separator: "\n\n\n", 
     }, 
     dist: { 
     src: ['src/**/*.js'], 
     dest: 'dest/js/app.js', 
     }, 
    }, 

    uglify: { 
    build: { 
     files: { 
      'dest/js/app.min.js': ['<%= concat.dist.dest %>'] 
     } 
    } 
    }, 


    compass: {     // Task 
    dist: {     // Target 
     options: {    // Target options 
     sassDir: 'scss', 
     cssDir: 'css', 
     environment: 'production' 
     } 
    }, 
    dev: {     // Another target 
     options: { 
     sassDir: 'scss', 
     cssDir: 'css' 
     } 
    } 
    }, 

    watch: { 
    css: { 
     files: '**/*.scss', 
     tasks: ['compass'] 
    }, 

    scripts: { 
     files: ['<%= concat.dist.dest %>'], 
     tasks: ['concat', 'uglify:build'], 
     options: { 
      atBegin: true, 
     } 
    } 
    } 
}); 

grunt.loadNpmTasks('grunt-contrib-uglify'); 
grunt.loadNpmTasks('grunt-contrib-compass'); 
grunt.loadNpmTasks('grunt-contrib-watch'); 
grunt.loadNpmTasks('grunt-contrib-concat'); 
grunt.registerTask('default',['watch', 'compass', 'concat', 'uglify']); 

};