2013-05-14 29 views
5

Tôi đang cố định cấu hình grunt thành các tệp tin tải xuống và các tệp less/css trên các thay đổi. Trong khi grunt không chính xác "xem" và thực hiện các nhiệm vụ được giao, nó không tải các tập tin. Dưới đây là cấu hình của tôi, có ai thấy điều gì sai không?Grunt Live-Reload qua 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"]); 
}; 

Lưu ý: Tôi đã bao gồm thẻ tập lệnh sau trong thẻ đầu html.

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

Trả lời

9

Cấu hình của bạn đang cố bắt đầu 2 máy chủ tải lại trực tiếp trên cùng một cổng. Nếu bạn muốn 1 máy chủ tải lại sống để kích hoạt trên tất cả các mục tiêu đồng hồ của bạn sau đó chỉ cần thêm 1 lựa chọn livereload ở cấp nhiệm vụ:

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

Tôi đã định cấu hình lại đồng hồ như bạn đã đề xuất ở trên, nhưng rất tiếc, tải lại trực tiếp vẫn không thực thi. – Ari

+6

Bạn có thể làm 'grunt watch --verbose' và nó sẽ cho bạn biết khi nó tải lại trong giao diện điều khiển. Mặc dù tôi nhận thấy bạn đang sử dụng 'grunt.loadNpmTasks ('grunt-contrib')' ... sử dụng phiên bản cũ hơn của tác vụ xem không tải lại trực tiếp. Tôi khuyên bạn nên * không * bằng cách sử dụng 'grunt-contrib' và tải từng mô-đun riêng lẻ. –

+1

Tải từng mô-đun riêng lẻ đã giải quyết được sự cố. Cảm ơn. – Ari

0

tôi nhớ da diết thẻ kịch bản và sau khi thêm này

nó bắt đầu làm việc cho tôi. :)!

Cảm ơn,

Các vấn đề liên quan