Geekitude

Geekeries en tout genres

Outils pour utilisateurs

Outils du site


info:webdesign:gruntfile.js

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']);
};
info/webdesign/gruntfile.js.txt · Dernière modification : 2018/05/03 11:10 de 127.0.0.1