Lavorare con Grunt e Sass

Lavorando con Sass si sente subito l’esigenza di avere un tool che ci generi in automatico i file .css, le possibilità sono tante, una di queste può essere l’uso di Grunt.

grunt-logo-1

Per iniziare installiamo NodeJs:
su Ubuntu

$ apt-get install python-software-properties
 $ apt-add-repository ppa:chris-lea/node.js
 $ apt-get update
 $ apt-get install nodejs

su OSx

$ brew install node

Poi dobbiamo configurare le dipendenze npm:

$ npm init
$ npm install grunt --save-dev
$ npm install grunt-contrib-sass --save-dev
$ npm install grunt-contrib-watch --save-dev

A questo punto avremo un packeage.json simile a questo:

{
  "name": "my-project",
  "version": "0.0.1",
  "devDependencies": {
    "grunt": "^0.4.4",
    "grunt-contrib-sass": "~0.7.3",
    "grunt-contrib-watch": "~0.6.1"
  }
}

Per usare grunt da riga di comando dobbiamo installare Grunt Cli

$ sudo npm install -g grunt-cli

Installiamo Sass (necessità di Ruby installato)

$ sudo gem install sass

Configuriamo Grunt creando un Gruntfile.js così:

module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        sass: {
            dist: {
                files: {
                    'styles/style.css' : 'sass/style.scss',
                    'styles/style-ie.css' : 'sass/style-ie.scss',
                }
            }
        },
        watch: {
            css: {
                files: '**/*.scss',
                tasks: ['sass']
            }
        }
    });
    grunt.loadNpmTasks('grunt-contrib-sass');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.registerTask('default',['watch']);
}

A questo punto quando lavoriamo ci basterà lanciare grunt ed avremo il watch sui sass che, appena modificati, verranno compilati dalla cartella sass e spostati nella cartella styles.

$ grunt