2013-05-14 2 views
5

Я пытаюсь настроить grunt для файлов cookie js и less/css при изменениях. В то время как grunt делает правильно «смотреть» и выполнять назначенные задачи, он не обновляет файлы. Ниже моя конфигурация, кто-нибудь видит, что не так?Grunt Live-Reload с помощью Watch

module.exports = function(grunt) { 
grunt.initConfig({ 
    pkg: grunt.file.readJSON("package.json"), 
    jshint: { 
     files: ["Gruntfile.js", "src/javascripts/**/*.js"], 
     options: { 
      globals: { 
       jQuery: true, 
       console: true, 
       module: true 
      } 
     } 
    }, 
    concat: { 
     options: { 
      stripBanners: true, 
      banner: "/*! <%= pkg.name %> - v<%= pkg.version %> - <%= grunt.template.today('yyyy-mm-dd') %> */\n", 
      separator: "\n" 
     }, 
     js: { 
      src: ["src/javascripts/main.js", "src/javascripts/**/*.js"], 
      dest: "../app/assets/javascripts/application.js" 
     }, 
     less: { 
      src: ["src/stylesheets/**/*.less"], 
      dest: "../app/assets/stylesheets/application.less" 
     } 
    }, 
    watch: { 
     js: { 
      files: ["<%= jshint.files %>"], 
      tasks: ["jshint", "concat:js"], 
      options: { 
       livereload: true 
      } 
     }, 
     less: { 
      files: ["<%= concat.less.src %>"], 
      tasks: ["concat:less"], 
      options: { 
       livereload: true 
      } 
     } 
    } 
}); 

grunt.loadNpmTasks("grunt-contrib"); 

grunt.registerTask("default", ["jshint", "concat"]); 
}; 

Примечание: Я включил следующий тег скрипта в тег html head.

<script src="http://localhost:35729/livereload.js"></script> 

ответ

9

Ваша конфигурация пытается запустить 2 живых перезагружаемых сервера на том же порту. Если вы хотите 1 живой сервера перезагрузить, чтобы вызвать на все ваши часы целях, то просто добавьте 1 вариант LiveReload на уровне задач:

watch: { 
    options: { 
    livereload: true 
    }, 
    js: { 
    files: ["<%= jshint.files %>"], 
    tasks: ["jshint", "concat:js"], 
    }, 
    less: { 
    files: ["<%= concat.less.src %>"], 
    tasks: ["concat:less"], 
    } 
} 
+0

Я реконструировал часы, как вы предлагали выше, но, к сожалению, live-reload все еще не выполняется. – Ari

+6

Вы можете использовать 'grunt watch --verbose', и он скажет вам, когда он перезагрузится в консоли. Хотя я заметил, что вы используете 'grunt.loadNpmTasks ('grunt-contrib')' ..., который использует более старую версию задачи просмотра, которая не имеет живой перезагрузки. Я рекомендую * не * использовать 'grunt-contrib' и загружать каждый модуль отдельно. –

+1

Загрузка каждого модуля индивидуально разрешила проблему. Благодарю. – Ari

0

Я отсутствующий тег сценария и после добавления этой

это начал работать для меня. :)!

Спасибо,

Смежные вопросы