2011-10-02 10 views
23

JSLint funziona correttamente per un solo file JavaScript. Recentemente, ho iniziato a rompere il mio programma in più parti.JSLint con più file

Non voglio mettere insieme i pezzi ogni volta che uso JSLint per controllare il mio codice. Qual è la soluzione standard per gestire i file multipli con JSLint?

+0

Utilizziamo la generazione automatizzata utilizzando gli script NAnt e in questo processo di build eseguiamo un'attività per JSLint che accetta un elenco di file. Non so se questo potrebbe funzionare per te, ma comunque. –

risposta

23

Esiste una versione di JSLint (nodo-JSLint) (riga di comando) che consente di controllare più file contemporaneamente. Segui collegamento per il download su GitHub:

https://github.com/reid/node-jslint

I seguenti esempi di chiamare tramite la linea di comando:

JSLint app.js 
JSLint lib/lib worker.js/server.js # Multiple files 
JSLint - white - onevar - regexp app.js JSLint # All options supported 
JSLint - bitwise false app.js # Defaults to true, but You Can Specify false 
JSLint - goodparts - # undef false app.js The Good Parts, except undef 
JSLint-gp app.js # Shorthand for - goodparts:-gp 
find . -name "*.js" -print0 | xargs -0 jslint # JSLint JSLint your Entire Project 

Nota: Questa applicazione è stata sviluppata per NodeJS.

+0

Grazie. Quindi è solo per gli utenti del nodo? Devo avere il nodo installato? – Randomblue

+0

Randomblue, apparentemente non è necessario, ma è necessario disporre di due moduli js richiesti dal programma (nopt.js e fs.js). –

1

Puoi anche dare un'occhiata qui: https://github.com/mikewest/jslint-utils Dovrebbe funzionare con Rhino o NodeJS. Puoi anche passare più file per il controllo. NB: se si dispone di uno script a riga di comando che non tiene più file come argomenti, si può sempre fare qualcosa di simile: ls public/javascripts/**/*.js | jslint

0

(questo è preso da this link e formattato)

Rhino è un motore Javascript questo è scritto interamente in Java. Può essere utilizzato per eseguire JSLint dalla riga di comando su sistemi con interpreti Java.

Il file jslint.js può essere eseguito da Rhino. Legge un programma JavaScript da un file. Se non ci sono problemi, termina tranquillamente. Se c'è un problema, emette un messaggio. L'edizione WSH di JSLint non produce un rapporto funzione.

Un modo per eseguire JSLint è con questo comando:

C:\> java org.mozilla.javascript.tools.shell.Main jslint.js myprogram.js 

Corre java che carica e gestisce Rhino che carica e gestisce jslint.js, che leggeranno i myprogram.js di file e segnalare un errore se trovato.

Scarica jslint.js.

2

È possibile eseguire JSLint contro file HTML, non solo contro i file JavaScript (che ha senso, a causa del tag <SCRIPT>). E JSLint è intelligente sugli script esterni - se li può localizzare, li caricherà come parte dell'elaborazione. Quindi prova qualcosa del genere:

<html> 
    <head> 
     <script src="file1.js"></script> 
     <script src="file2.js"></script> 
     ... 
     <script>mainRoutine();</script> 
    </head> 
</html> 

Esegui JSLint su quello, anziché su ciascuno dei tuoi file.

2

L'app della riga di comando JavaScript Lint (http://www.javascriptlint.com/) funziona con più file e può recurse di directory. Per esempio.

%JSLPATH%\jsl.exe +recurse -process src\scripts\*.js 
1

Se non avete bisogno di esecuzione di un conteggio errori, terminale aperto (in OS X) e incollare questo:

for i in $(find . -iname "*.js"); do jshint $i; done 
+0

è possibile sostituire trovare. con find/path/ –

14

Cosa c'è di sbagliato con solo eseguendo il comando?

jslint . 

controllerà tutti i file js nella directory corrente e reciterà dall'albero.

+6

... che includerà tutto nella directory node_modules. –

+1

Si noti che se si utilizza JS ** H ** int, è possibile escludere le directory in vari modi (ad esempio l'opzione '--exclude dir'). Vedi http://jshint.com/docs/cli/ sezione "ignorare i file". –