2013-03-27 12 views
26

Próbuję zmusić się do pracy, żeby coś zrobić. Mój projekt wygląda tak:Grunt, mniej i oglądanie pliku

/app 
    /assets 
     /components 
     /stylesheets 
      /less 
       /file1.less 
       /file2.less 
       /file3.less 
       /importAll.less 
      /css 

chcę go tak, że kiedy file1, file2 lub file3 są zapisywane w pliku importAll.less jest kompilowany do CSS i umieścić w /css/style.css. To tyle, ile mam.

less: { 
    development: { 
     options: { 
      paths: ["./assets/stylesheets/less"], 
      yuicompress: true 
     }, 
     files: { 
      "./assets/stylesheets/css/style.css": "./assets/stylesheets/less/importAll.less" 
     } 
    } 
} 

Nie jestem pewien, jak sprawić, aby obserwator plików działał.

Odpowiedz

54

Mam to działa z następującymi!

module.exports = function(grunt) { 
    grunt.initConfig({ 
     less: { 
      development: { 
       options: { 
        paths: ["./assets/stylesheets/less"], 
        yuicompress: true 
       }, 
       files: { 
        "./assets/stylesheets/css/style.css": "./assets/stylesheets/less/style.less" 
       } 
      } 
     }, 
     watch: { 
      files: "./assets/stylesheets/less/*", 
      tasks: ["less"] 
     } 
    }); 
    grunt.loadNpmTasks('grunt-contrib-less'); 
    grunt.loadNpmTasks('grunt-contrib-watch'); 
}; 
+13

dla początkującego jak ja, to prawdopodobnie będzie pomóc wspomnieć, że do uruchomienia tylko 'grunt' trzeba zdefiniować zadania domyślnego jak' grunt.registerTask (domyślnie „”, „”); zegarka 'odsyłającym [ docs] (http://gruntjs.com/api/grunt.task#grunt.task.regaskertask) –

+1

skąd wie, jak uruchomić 'less: development', kiedy możesz mieć wiele zadań w bloku' less {} ' ? –

+2

@WillshawMedia, aby uruchomić tylko część "rozwoju", użyj 'grunt less: development'. 'grunt less less 'będzie działał pod" less " – tivnet