Grunt nodemon

Je travaille sur une API JSON-RPC. Ça veut dire que je dois lancer un serveur avec node, puis me rendre sur mon client REST, lancer ma requête, me rendre compte que ça plante, revenir dans mon code, le modifier, revenir sur mon terminal, tuer le serveur d'un ctrl+C, le relancer d'un up + entrée, revenir à mon client REST… fastidieux. Heureusement, il y a nodemon ! Nodemon permet de gérer automatiquement le lancement et la vie d'un serveur. Une fois correctement configuré, il relancera automatiquement votre serveur dès la sauvegarde d'un fichier qui le compose. Vous n'avez ainsi plus à vous en soucier.

Mise en place

On commence par installer le module avec npm :

npm install grunt-nodemon --save-dev

Puis, nous allons modifier le fichier Gruntfile.js afin de le configurer. Première chose à faire, charger le plugin :

grunt.loadNpmTasks('grunt-nodemon');

Puis, sa configuration a rajouter dans l'objet passé à la méthode initConfig :

nodemon: {
        dev: {
            options: {
                file: 'server.js',
                ignoredFiles: ['node_modules/**'],
                watchedExtensions: ['js'],
                delayTime: 1
            }
        }
    }

Le paramètre file indique quel sera le fichier à lancer pour lancer le serveur, généralement server.js ou index.js.

Le paramètre ignoredFiles permet d'ignorer certains fichiers. Une regexp permettra de les matcher.

Le paramètre watchedExtensions est un tableau contenant les extensions des fichiers dont vous voulez écouter les modification. Ici, lorsqu'un fichier javascript sera sauvegardé, nodemon tuera puis relancera le serveur.

Le paramètre delayTime permet de spécifier un délai pour éviter de relancer trop souvent le server pour les impulsif du cmd+S.

Hadrien

Hi, I'm a french Javascript Lead Developer, Web Architect from Toulouse, France. I've worked for 12 years for many projects with YUI, AngularJS, Aurelia.io and now React and React native.

Toulouse, France https://hadrien.eu