gennaio 07, 2013

Maven e Javascript :: JSLint

Nonostante preferisca scrivere il codice usando TDD, potrebbe accadere che qualche collega non ne abbia ancora compreso il valore.
Se il linguaggio in uso "richiede" comunque una fase di compilazione, si è almeno salvi da errori di scrittura. Ma quando si ha a che fare con un linguaggio di scripting come Javascript (del quale vi ricordo: io non so una mazza), si è proprio in balia del destino... se c'è un errore di scrittura in qualche function... "lo scopriremo solo vivendo"!


Per Javascript è allora utile configurare un tool simile a JSLint nel proprio "sistema di build".
Per Maven ho trovato questo plugin jslint4java-maven-plugin

Per configurarlo basta aggiungere le seguenti righe al proprio pom.xml:

...
<plugin>
<groupId>com.googlecode.jslint4java</groupId>
<artifactId>jslint4java-maven-plugin</artifactId>
<version>2.0.2</version>
<executions>
<execution>
<id>lint</id>
<phase>process-resources</phase>
<goals>
<goal>lint</goal>
</goals>
<configuration>
<failOnError>true</failOnError>
<options>
<anon>true</anon>
<white>true</white>
<sloppy>true</sloppy>
<undef>true</undef>
<vars>true</vars>
</options>

<excludes>
<exclude>**/lib/**</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
...

La sezione options consente di configurare il plugin.
Una delle opzioni che ho scoperto esser estremamente utile è sloppy. Infatti quando questa opzione è false (il default) è necessario aggiungere il testo

"use strict";

all'inizio di ogni function Javascript.
Impostandola a true, non è più necessario farlo e sinceramente, qualunque opzione mi consenta di evitar dettami di build nel *mio* codice... è ben accetta.

1 commento:

  1. Grande.... Una volta inserito nel pom.xml, funziona senza tanti fronzoli.
    L'unica cosa interessante che segnalo è che qui http://www.jslint.com/lint.html#options si possono trovare opzioni aggiuntive da aggiungere nella configuration in modo da rendere il compilatore JS meno restrittivo.

    RispondiElimina