2016-08-04 1 views
0

Les tâches de mon fichier grunt s'exécutent sans erreur mais les fichiers que je lui demande de créer ne sont pas compilés. Ils sont créés si je cours simplement «grognement» mais si j'utilise «regarder grognement» et enregistrer un fichier, il ne met pas à jour.Grunt Watch ne crée pas de fichiers lors de la sauvegarde

En particulier, je travaille sur le fichier 'script/src/latestNews.js', donc enregistrez cela devrait concaténer avec d'autres pour créer 'script/dist/main.js', ce qui est le cas. Mais il ne crée pas 'dist/build.min.js' comme il se doit.

module.exports = function (grunt) { 

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

     uglify: { 

      options: { 
       mangle: false 
      }, 

      target: { 
       files: { 
        'script/dist/main.min.js':'script/dist/main.js' 
       } 
      }, 

      build: { 
       files: { 
        'script/dist/build.min.js':'script/dist/build.min.js' 
       } 
      } 

     }, 

     concat: { 
      options: { 
       stripBanners: true, 
       banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' + 
       '<%= grunt.template.today("yyyy-mm-dd") %> */', 
      }, 

      srcJS: { 
       src: ['script/src/menu.js', 
         'script/src/custom_plugins.js', 
         'script/src/banner.js', 
         'script/src/latestNews.js', 
         'script/src/officers.js', 
         'script/src/eventsCalendar.js', 
         'script/src/combinedSocialMedia.js', 
         'script/src/haveYourSay.js', 
         'script/src/photoGallery.js', 
         'script/src/countdown.js' 
        ], 
       dest: 'script/dist/main.js' 
      }, 

      css: { 
       src: ['style/libs/bootstrap.min.css', 
         'style/libs/bootstrap-theme.min.css', 
         'style/src/css/*'], 
       dest: 'style/dist/build.min.css' 
      }, 

      build: { 
       src: ['script/libs/jquery.easing.min.js', 
         'script/dist/main.js', 
         'script/libs/bootstrap.min.js', 
         'script/libs/velocity.min.js', 
         'script/libs/date.js', 
         'script/libs/jquery.timeago.js', 
         'script/libs/owl.carousel.min.js' 
         ], 
       dest: 'script/dist/build.min.js' 
      } 

     }, 

     jshint: { 

      main: 'script/dist/main.js' 

     }, 

     watch: { 

      js: { 
       files: 'script/src/*', 
       tasks: ['concat:srcJS', 'uglify:target', 'jshint:main', 'copy:js'] 
      }, 

      css: { 
       files: 'style/src/css/*', 
       tasks: ['copy:css'] 
      }, 

      less: { 
       files: 'style/src/less/*', 
       tasks: ['less', 'copy:css'] 
      }, 

      html: { 
       files: '*.html', 
       tasks: ['validation', 'bootlint'] 
      } 

     }, 

     clean: { 
      js: [ 
       'script/dist/main.min.js', 
       'dist/build.min.js', 
       'dist/build.min.css' 
      ] 
     }, 

     copy: { 
      css: { 
       files: [ 

        { expand: true, 'src' : 'style/src/css/main.css', 
        'dest' : 'style/dist/', flatten: true, 
        rename: function(dest, src) { 
         return dest + src.replace('main','build.min'); 
        } 
        }, 

        { expand: true, 'src' : 'style/dist/build.min.css', 
        'dest' : 'dist/', flatten: true }, 

       ] 
      }, 

      js: { 
       files: [ 
        { expand: true, 'src' : 'script/dist/build.min.js', 
        'dest' : 'dist/', flatten: true } 
       ] 
      } 
     }, 

     validation: { 
      options: { 
       reset: grunt.option('reset') || false, 
       stoponerror: true, 
       relaxerror: ['Bad value X-UA-Compatible for attribute http-equiv on element meta.'] //ignores these errors 
      }, 
      files: { 
       src: ['homepage.html'] 
      } 
     }, 

     bootlint: { 
      options: { 
       stoponerror: false, 
       relaxerror: ['E001', 'E003', 'E031', 'W001', 'W002', 'W003', 'W005', 'W007', 'W009', 'E013'] 
      }, 
      files: ['homepage.html'], 
     }, 

     less: { 
      build: { 
       options: { 
        paths: ["style/src/less"], 
        cleancss: true, 
        compress: true 
       }, 
       files: { 
        "style/src/css/main.css": "style/src/less/main.less" 
       } 
      } 
     } 

    }); 

    // Load the plugin that provides the "uglify" task. 
    grunt.loadNpmTasks('grunt-contrib-concat'); 
    grunt.loadNpmTasks('grunt-contrib-uglify'); 
    grunt.loadNpmTasks('grunt-contrib-jshint'); 
    grunt.loadNpmTasks('grunt-contrib-watch'); 
    grunt.loadNpmTasks('grunt-contrib-copy'); 
    grunt.loadNpmTasks('grunt-contrib-clean'); 
    grunt.loadNpmTasks('grunt-contrib-less'); 
    grunt.loadNpmTasks('grunt-html-validation'); 
    grunt.loadNpmTasks('grunt-bootlint'); 

    // Default task(s). 
    //grunt.registerTask('default', ['concat:srcJS','concat:css','uglify','jshint:main']); 
    grunt.registerTask('default', [ 
           'validation', 
           'bootlint', 
           'concat:srcJS', 
           'jshint:main', 
           'uglify:target', 
           'clean', 
           'concat:build', 
           'uglify:build', 
           'less', 
           'copy' 
           ]); 
    }; 

Répondre

1

Il ressemble à l'ensemble des tâches qui sont gérées par votre tâche watch:js est tout simplement absent quelques tâches essentielles. Plus précisément, vous n'exécutez pas les tâches concat:build et uglify:build.

Votre tableau actuel des tâches: ['concat:srcJS', 'uglify:target', 'jshint:main', 'copy:js']

gamme complète/fixe des tâches: ['concat:srcJS', 'uglify:target', 'jshint:main', 'concat:build', 'uglify:build', 'copy:js']

Le remplacement de votre tableau en cours avec le correctif que je fournis devrait résoudre votre problème.