11548 sujets

JavaScript, DOM et API Web HTML5

Bonsoir,

JSLint vient par défaut avec un script pouvant être exécuté dans WindowsScriptHost (WSH), mais rien pour Ubuntu. Voici donc la démarche à suivre pour cet environnement.


Pour JSLint sous Ubuntu : installez Seed (un interpréteur JavaScript) de préférence (évitez GJS, qui n'est apparemment plus maintenu sérieusement).

Récupérez le source de JSLint sur GitHub : douglascrockford / JSLint.

Renommez éventuellement le fichier fulljslint.js en jslint.js.

Ouvrez jslint.js dans votre éditeur, et ajoutez-y à la fin :


// ------------------------------------------------------------------
// Questions and comments about what follows: yannick_duchene( at )yahoo.fr

var IO = imports.gi.Gio;

function main ()
{
   var ignored;
   var programName;
   var path;
   var file;
   var text;
   var result;
   var i;
   var error;
   var message;

   ignored = Seed.argv[0];
   // This is just the name of the Seed interpreter

   programName = Seed.argv[1];
   // This is the name of the JSLint script passed as an 
   // argument to the Seed interpreter.

   if (Seed.argv.length !== 3) {
      Seed.printf (
         "\"%s\" expects exactly one argument, " +
         "which is a path to a file.",
         programName);
      Seed.quit (1);
   }

   path = Seed.argv[2];

   file = IO.file_new_for_path (path);
   
   if (!file.query_exists ()) {
      Seed.printf ("File \"%s\" does not exist.", path);
      Seed.quit (1);
   }
   
   try {
      text = file.read().get_contents();
   } catch (error) {
      Seed.printf ("Content of \"%s\" could not be read.", path);
      Seed.printf ("Error: %s.", error);
      Seed.quit (1);
   }

   result = JSLINT (text, "");

   if ((result === 1) || (result === true)) {
      Seed.quit (0);
   }
   else {
      for (i in JSLINT.errors) {
         error = JSLINT.errors[ i ];
         if (error === null) {
            message = "Fatal error";
         }
         else {
            message = "\"" + path + "\"";
            message = message + ":" + error.line;
            //message = message + ":" + error.character;
            message = message + ": " + error.reason;
         }
         print (message);
      }
      Seed.quit (2);
   }
}

main ();


Pour le lancez depuis la CLI (ligne de commande) :
seed <chemin-du-script-jslint> <chemin-du-fichier-à-vérifier>


Si aucune erreur, alors rien n'est affiché sur la sortie et code de sortie = 0.
Si erreur d'exécution brute, alors code de sortie = 1.
Si erreur dans le fichier JavaScript à vérifier, alors code de sortie = 2 et le format des messages est le suivant : "<chemin-du-fichier>":<numero-ligne>: <message>
Si les guillemets autour du chemin vous gêne, éditez le ce qu'il vous est indiqué d'ajouter plus haut.

Pour passer des options à JSLint, utilisez les commentaires de configuration, que vous placerez par exemple en entête de votre source. Exemple :


// JSLint configuration. 
// Do not remove.

/*jslint adsafe:false */
/*jslint bitwise:true */
/*jslint browser:false */
/*jslint debug:false */
/*jslint eqeqeq:true */
/*jslint evil:false */
/*jslint forin:true */
/*jslint nomen:false */
/*jslint plusplus:true */
/*jslint undef:true */
/*global document */
/*global self */
/*global window */

Modifié par hibou57 (26 Mar 2011 - 20:18)