2013-05-02 3 views
5

Con la seguente impostazione del jsHint non si lamenta circa console.log dichiarazioni mentre segnala ancora debugger dichiarazioni:grugnito-contrib-jshint non si lamenta console.log

jshint: { 
     files: [ 
     'Gruntfile.js', 
     'js/**/*.js', 
     'tests/*.js', 
     ], 
     options: { 
     curly: true, 
     immed: true, 
     noarg: true, 
     expr: true, 
     quotmark: 'single', 
     maxdepth: 3, 
     browser: true, 
     eqnull: true 
     } 
    }, 

risposta

8

Per quanto posso dire, JSHint non ha mai messo in guardia sui riferimenti a console. Non c'è codice in là per gestire specificamente tali riferimenti.

console viene semplicemente considerato come un identificatore che deve essere definito e accessibile da qualsiasi contesto a cui si fa riferimento (che è corretto, poiché è davvero tutto ciò che è).

Pertanto, è possibile ottenere JSHint per avvisare sull'utilizzo di console rilevandolo per tutte le variabili non definite. Basta impostare l'opzione undef su true.

Poi, se si desidera consentire l'utilizzo di console, è possibile aggiungere al vostro direttiva globals o impostare l'opzione devel a true (che aggiunge implicitamente al vostro direttiva globals).

+0

Ok, è stato confuso dalle opzioni 'devel'. Per me sembra che jsHint si lamenterà sempre di 'console' e posso disattivarlo con' devel: true' –

+0

@ AndreasKöberle - Sì, i documenti non sembrano molto chiari. Potrei aprire un problema su GitHub e vedere se può essere reso un po 'più chiaro. –

+0

Per chi legge questa risposta un anno dopo, la documentazione di 'devel' è ora piuttosto esplicita: http://www.jshint.com/docs/options/#environments – aymericbeaumet

2

Ho avuto questo problema dove volevo l'avviso per i riferimenti a console e undef: true e devel: false, ma ancora non ricevendo gli avvisi. Si è rivelato che avevo anche node: true, che annulla questo avviso. Dopo averlo modificato in node: false ha funzionato!

+0

Questo funziona. C'è un modo per avvisare solo su console.log e non su console.error? – wdphd

+0

Io non la penso così. Se impostato 'console' come globale, includerà sia .log che .error –

3

Ho anche avuto questo problema.

Avevo "undef" impostato su true e ancora non ha funzionato.

Ho provato "devel" senza risultato.

Infine - ho semplicemente utilizzare la variabile "globals" in questo modo:

"globals" : { 
     "console": true 
} 

e che ha fatto il trucco.

+0

Si potrebbe semplicemente fare" console ": false' per consentire un accesso di sola lettura all'oggetto' console'. – aymericbeaumet