2013-12-06 3 views
4

Вот мой Gruntfile.jsGrunt с LiveReload, чтобы замедлить

watch: { 
      options: { livereload: true }, 
      compass: { 
       files: ['assets/sass/*.{scss,sass}'], 
       tasks: ['compass'] 
      }, 
      // js: { 
      // files: '<%= jshint.all %>', 
      // tasks: ['jshint', 'uglify'] 
      // }, 
      livereload: { 
       // files: ['*.html', '*.php', 'assets/stylesheets/**/*.{css}'] 
       files: ['*.html', '*.php', 'assets/stylesheets/custom.css'] 
      } 
     }, 

     // compass and scss 
     compass: { 
      dist: { 
       options: { 
       config: 'config.rb', 
       force: true 
       } 
      } 
     }, 

и это выход из grunt watch:

Done, without errors. 
... Reload assets/sass/custom.scss ... 
... Reload assets/stylesheets/custom.css ... 
Completed in 11.033s at Fri Dec 06 2013 14:20:48 GMT+0100 (CET) - Waiting... 
OK 
>> File "assets/stylesheets/custom.css" changed. 
>> File "assets/sass/custom.scss" changed. 

Running "compass:dist" (compass) task 
overwrite assets/stylesheets/custom.css (0.701s) 
identical assets/stylesheets/app.css (3.452s) 
Compilation took 4.158s 

Done, without errors. 
... Reload assets/sass/custom.scss ... 
... Reload assets/stylesheets/custom.css ... 
Completed in 10.719s at Fri Dec 06 2013 14:21:53 GMT+0100 (CET) - Waiting... 

  1. ..so, почему LiveReload так много времени для обновления страницы, 10secs для предварительного просмотра любых изменений в моем .scss-файле, также как это было бы возможно не обновить страницу полностью, а только внести изменения .css на странице?
  2. ..на другой вещи, я хотел бы знать, как избежать этого компиляция отставание на app.css, которое заняло почти 4 секунды, и это не даже изменилось?

Я использую расширение браузера с поддержкой этой функции.

Спасибо.

+0

Я также заметил проблемы с производительностью, поэтому мне интересно, какие здесь решения. – dmackerman

ответ

2

1a: чтобы ускорить работу в задаче просмотра, попробуйте вариант spawn: false. Это может сделать вещи нестабильными, но стоит попробовать. Если это будет хорошо, пойдите для этого. Это может вызвать проблемы позже, но если вы добавите много разных задач в задачу просмотра. Но вы можете беспокоиться об этом и отключить его потенциально.

1b:

Прежде всего не позволяют LiveReload на для задачи компаса. (у вас есть глобально, возьмите только в css). Из-за этого он вызовет событие для загрузки в файл scss. Но так как клиент-печенье не знает этот файл, он перезагружает всю страницу. Убедитесь, что единственным сообщенным файлом является скомпилированный css.

Во-вторых, задача часов вызовет обновление для ранее измененных файлов. Это известно, но, я считаю, он исправлен в мастер, но пока не опубликован.

https://github.com/gruntjs/grunt-contrib-watch/issues/205

2:

Ну, скомпилировать его, чтобы сравнить его, то он просто сообщает, что она идентична.

0

Чтобы только инъекционные .css изменения:

watch: { 
     compass: { 
      files: ['assets/sass/*.{scss,sass}'], 
      tasks: ['compass'] 
     }, 
     livereload: { 
      files: ['assets/stylesheets/*.css'], 
      options: { livereload: true } 
     } 
    } 

К сожалению, я также получаю медленно и подобные времена компиляции (он должен быть компас).

+0

Теперь я использую комбинацию Guard - Livereload для той же задачи, поскольку она работает намного быстрее, пока кто-то не найдет лучшего решения с Grunt. Спасибо всем. – branquito

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