2014-08-31 15 views
6

Si consideri il seguente funzione standard espresso: viene visualizzataSilenzio JSHint quando una specifica

if (app.get('env') === 'development') { 
    app.use(function (err, req, res, next) { 
     res.status(err.status || 500); 
     res.render('error', { 
      message: err.message, 
      error: err 
     }); 
    }); 
} 

il seguente avviso:

'prossimo' è definito, ma mai utilizzato. - W098

so di poter disattivare tutte le avvertenze, ma non è quello che voglio. Quello di cui ho bisogno è di silenziare JSHint solo per un parametro specifico ('successivo' nel frammento sopra.)

Non ho visto nessuna risposta chiara a questo problema apparentemente comune. Qualche idea?

Grazie!

+0

possibile duplicato di [Impedisci a JSHint di avvertire che 'functionName è definito ma mai usato'] (http://stackoverflow.com/questions/12607289/prevent-jshint-warning-that-functionname-is-defined-but-never -uso) –

+1

Ho paura che ciò che stai chiedendo non sia possibile. In sostanza puoi aggiungere 'inutilizzato: vars' nel tuo' .jshintrc' o nel tuo file, ma non penso che puoi disabilitarlo solo per un parametro specifico. –

+0

"* [...] questo problema apparentemente comune. *" In realtà è piuttosto insolito con Express che richiede 4 parametri con nome per riconoscere i gestori degli errori. Nella maggior parte dei casi, la lunghezza di una funzione non è significativa e la rimozione del parametro aggiuntivo per soddisfare l'avviso non influisce sul modo in cui l'applicazione funziona. –

risposta

1

Sì, questo è possibile!

Se si sta utilizzando la configurazione di default del JSHint, la risposta accettata in questa discussione è la vostra risposta troppo: Is there a way to suppress JSHint warning for one given line? Essa mostra come utilizzare i commenti per ignorare condizionalmente specifici errori/avvisi di essere gettato in JSHint.

Se si utilizza uno strumento di compilazione come Gulp o Grunt, è possibile aggiungerlo alle opzioni nella configurazione dell'attività del plug-in. Ad esempio, con Grunt: Vedere la sezione "Ignorare avvisi specifici" su https://github.com/gruntjs/grunt-contrib-jshint/blob/master/README.md.

Spero che questo aiuti!

+0

Anche se non esattamente quello che stavo cercando, aggiungendo "// jshint ignore: line" dopo che la linea offendente ha disattivato l'avviso. Potrebbe ingoiare altri avvertimenti, ma nel mio caso no, quindi funziona bene. – titusmagnus

3

In questo caso si può fare qualcosa di simile sotto

if (app.get('env') === 'development') { 
    app.use(function (err, req, res, next) { 
     /*jshint unused: vars*/ 
     var foo; 

     res.status(err.status || 500); 
     res.render('error', { 
      message: err.message, 
      error: err 
     }); 
    }); 
} 

Ora jshint non si piangere next, anche se sarà comunque mettere in guardia sui foo in fase di definizione ma non utilizzata.

È importante notare che questa soppressione sarà limitata all'ambito della funzione.

Problemi correlati