2013-09-08 9 views
6

Po prostu uczę się Grunt. Zamierzam użyć kompasu do generowania pionowych rytmów i obrazków oraz autoprefiksu do prefiksowania stylów css3.Pętla autoprefixera z nieskończoną prędkością podczas korzystania z pomnika contrib-watch

Oto mój Gruntfile.js.

module.exports = function(grunt) { 
    var globalConfig = { 
    sassDir: 'sass', 
    cssDir: 'css' 
    }; 

    require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); 
    // Project configuration. 
    grunt.initConfig({ 
    globalConfig: globalConfig, 
    pkg: grunt.file.readJSON('package.json'), 
    compass: { 
     dev: { 
     options: { 
      sassDir: '<%= globalConfig.sassDir %>', 
      cssDir: '<%= globalConfig.cssDir %>' 
     } 
     } 
    }, 
    autoprefixer: { 
     dev: { 
     options: { 
      browsers: ['last 2 versions'] 
     }, 
     src: '<%= globalConfig.cssDir %>/style.css', 
     dest: '<%= globalConfig.cssDir %>/style.css' 
     } 
    }, 
    watch: { 
     compass: { 
     files: ['<%= globalConfig.sassDir %>/**/*.scss'], 
     tasks: ['compass:dev'], 
     }, 
     autoprefixer: { 
     files: ['<%= globalConfig.cssDir %>/style.css'], 
     tasks: ['autoprefixer:dev'] 
     }, 
     livereload: { 
     options: { livereload: true }, 
     files: ['<%= globalConfig.cssDir %>/style.css'] 
     } 
    } 
    }); 

    // Default task(s) that will be run by invoking 'grunt' w/o args 
    grunt.registerTask('styles:dev', ['compass', 'autoprefixer']); 
    grunt.registerTask('default', ['styles:dev', 'watch']); 
}; 

Ale gdy uruchamiam

grunt 

Wszystko działa zgodnie z oczekiwaniami, oprócz tego, że grunt-contrib-watch wzywa grunt-autoprefixer nieskończoność.

Po prostu zaczynam się uczyć Grunt. Prawdopodobnie jest to błędna konfiguracja na moim Gruntfile.js

Mam nadzieję, że możesz mi pomóc tutaj.

Odpowiedz

10

zmienić konfigurację zadania do:

watch: { 
    compass: { 
    files: ['<%= globalConfig.sassDir %>/**/*.scss'], 
    tasks: ['compass:dev', 'autoprefixer:dev'] 
    }, 
    livereload: { 
    options: { livereload: true }, 
    files: ['<%= globalConfig.cssDir %>/style.css'] 
    } 
} 

Zasadniczo grunt-contrib-zegarek będzie uruchamiać zadania, gdy plik jest aktualizowane, a ponieważ pliki źródłowy i docelowy są takie same, to zamienia go w nieskończoną pętlę . Po prostu uruchom autoprefiks, gdy twoje zadanie kompasu zbuduje twoje css. Mam nadzieję że to pomoże. :-)

+1

tak, to naprawiło. wielkie dzięki. – chanHXC

+0

jeśli nie masz nic przeciwko, czy podzielisz się wskazówkami dotyczącymi najlepszych praktyk podczas konfigurowania pliku gruntfile.js? :) dzięki. – chanHXC

+0

Gdy już przyzwyczaisz się do konfigurowania zadań, znajdziesz mnóstwo różnych wtyczek, które mogą zautomatyzować wszelkiego rodzaju wspólne prace programistyczne. Nie ma zbyt wielu dobrych praktyk, do których mogę się odnieść w tym przypadku, już skonfigurowałeś konfigurację popularnych katalogów, użyłeś sztuczki matchdep itp. Stwierdziłem, że praca jest całkiem prosta, pod warunkiem, że przeczytaj dokumentację dla każdej wtyczki. Zdecydowanie przeglądaj repozytorium npm pod kątem nowych wtyczek, ale jest jeszcze wiele do odkrycia :-) – Ben

Powiązane problemy