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
:
- Gruntfile.js
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 : <cli>PS D:\www.dev> grunt Running “postcss:dist” (postcss) task
5 processed stylesheets created.
<color green>Done, without errors.</color></cli>
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 Can I use - ajouter la “minification”
- Gruntfile.js
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']); };
- Gruntfile.js
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']); };
- Gruntfile.js
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']); };