===== Fichier Gruntfile.js =====
Le second fichier à générer (toujours à la racine du projet), ''Gruntfile.js'', liste les tâches proprement dites ainsi que les options à appliquer.
Même en suivant les indications trouvées sur la toile, la syntaxe de chaque tâche est assez difficile à trouver donc il vaut mieux commencer par une seule tâche et n'en ajouter une autre qu'une fois que celle-ci fonctionne, et ainsi de suite.
Voici un exemple fonctionnel avec une tâche ''Autoprefixer'' :
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-postcss');
grunt.initConfig({
postcss: {
options: {
map: false,
processors: [
require('autoprefixer')({
browsers: ['last 2 versions']
})
]
},
dist: {
files: [{
expand: true,
flatten: true,
src: './css/src/*.*',
dest: './css/dist/'
}]
}
}
});
grunt.registerTask('default', ['postcss']);
};
Ici, tous les fichiers (grâce au joker ''*.*'') contenus dans le chemin relatif ''./css/src'' (à partir de la racine du projet où l'on a placé les fichiers ''package.json'' et ''Gruntfile.js'') seront passés à la moulinette //postcss// et le résultat sera enregistré dans le chemin relatif ''./css/dist''.
Pour lancer la tâche, il suffit (toujours en étant à la racine du projet) de lancer cette commande :
PS D:\www.dev> grunt
Running "postcss:dist" (postcss) task
>> 5 processed stylesheets created.
Done, without errors.
Ce qu'il reste à faire :
* automatiser la tâche grâce au package grunt-watch (qui l'activera dès que l'un des fichiers du dossier ''src'' sera modifié
* vérifier s'il faut automatiser la mise à jour de ''caniuse-db'' (la base de données du site bien connu [[http://caniuse.com/|Can I use]]
* ajouter la "minification"
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-postcss');
grunt.initConfig({
postcss: {
options: {
map: false,
processors: [
require('autoprefixer')({
browsers: ['last 2 versions']
})
]
},
dist: {
files: [{
expand: true,
flatten: true,
src: './css/src/*.*',
dest: './css/dist/'
}]
}
}
});
grunt.registerTask('default', ['postcss']);
};
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-postcss');
grunt.initConfig({
postcss: {
options: {
map: false,
processors: [
require('autoprefixer')({
browsers: ['last 2 versions']
})
]
},
dist: {
files: [{
expand: true,
flatten: true,
src: './css/src/*.*',
dest: './css/dist/'
}]
}
}
});
grunt.registerTask('default', ['postcss']);
};
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-postcss');
grunt.initConfig({
postcss: {
options: {
map: false,
processors: [
require('autoprefixer')({
browsers: ['last 2 versions']
})
]
},
dist: {
files: [{
expand: true,
flatten: true,
src: './css/src/*.*',
dest: './css/dist/'
}]
}
}
});
grunt.registerTask('default', ['postcss']);
};