Czy istnieje sposób na wygaszenie Ostrzeżenia JSHint dla jednej podanej linii?

Mam (pojedynczy) przypadek w mojej aplikacji były eval jest używany, i chciałbym wyłączyć ostrzeżenie JSHint tylko w tym przypadku.

Czy jest jakiś sposób, aby to osiągnąć? Konfiguracja, magiczny komentarz,...?
 239
Author: Mike Aski, 2012-10-19

3 answers

Tak, jest sposób. Właściwie to dwie. W Październik 2013 jshint dodał sposób na ignorowanie bloków kodu w następujący sposób:

// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */
// Code here will be linted with JSHint.

Możesz również zignorować pojedynczą linię z komentarzem kończącym:

ignoreThis(); // jshint ignore:line
 437
Author: Jason Punyon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-25 15:36:25

"zła" odpowiedź nie zadziałała na mnie. Zamiast tego użyłem tego, co było zalecane na stronie jshints docs . Jeśli znasz rzucane Ostrzeżenie, możesz je wyłączyć dla bloku kodu. Na przykład używam kodu innej firmy, który nie używa funkcji wielbłąda, ale moje reguły JSHint tego wymagają, co doprowadziło do ostrzeżenia. Aby to uciszyć, napisałem:

/*jshint -W106 */
save_state(id);
/*jshint +W106 */
 91
Author: tollmanz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-26 03:53:55

Jak widać w dokumentacji JSHint możesz zmienić opcje na funkcję lub na plik. W Twoim przypadku wystarczy umieścić komentarz w pliku lub nawet bardziej lokalny tylko w funkcji, która używa eval:

/*jshint evil:true */

function helloEval(str) {
    /*jshint evil:true */
    eval(str);
}
 38
Author: Odi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-26 03:54:11