Есть ли JSLint что-то вроде JavaScript Lint контроль комментариев (например, /*jsl:fallthru*/
), чтобы игнорировать некоторые проходы?
JSLint: контроль комментариев (выборочное игнорирование)
Ответ 1
Помещенный
/*ignore jslint start*/
до и
/*ignore jslint end*/
после игнорирования кода. Пример:
function ignore(){
/*ignore jslint start*/
var x; var y;
/*ignore jslint end*/
}
Или экспортируйте настройки JsLint, определите символы IgnoreErrorStart/IgnoreErrorEnd и импортируйте.
Edit
Некоторые люди могут путать этот ответ с JSHint. В этом случае используйте следующие функции:
/*jshint ignore:start*/
<!-- code in here -->
/*jshint ignore:end*/
Взято из fooobar.com/questions/137663/...
Ответ 2
Да. Из документации [обратите внимание, что это из старой версии документов, но она по-прежнему применяется]:
Реализация JSLint принимает объект option, который позволяет вам определить подмножество JavaScript, которое вам приемлемо. Также возможно установить эти параметры в источнике script.
Спецификация опций может выглядеть так:
/*jslint nomen: true, debug: true,
evil: false, vars: true */
Спецификация опций начинается с /* jslint. Обратите внимание, что перед j не существует пробела. Спецификация содержит последовательность пар значений имени, где имена - это параметры JSLint, а значения - true или false. Спецификация опций имеет приоритет над объектом option.
В документации не упоминается об этом отдельно, но вы можете включать и отключать различные проверки кода в целом с помощью нескольких комментариев jslint (спасибо Dominic Mitchell).
Существует полный список опций в документации.
Ответ 3
Вот пример кода, чтобы дополнить Матвея Крамли отличным ответом:
(function ($) {
$.isValidEmail = function(email){
/*jslint maxlen: 1000*/
var EMAIL_REGEXP = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i;
/*jslint maxlen: 200*/
return EMAIL_REGEXP.test(email);
};
}(jQuery));
Ответ 4
Ничто здесь не ответило на этот вопрос, насколько я могу сказать. Следующий код по-прежнему дает мне ошибки проверки, и я не могу заставить JSLint принять, что у меня нет времени исправить действующее регулярное выражение прямо сейчас, учитывая ФАКТИЧЕСКИЕ ПРИОРИТЕТЫ.
Ошибка, которую я получаю, относится к unescaped '{' и может привести к тому, что моя новая профессиональная команда отклонит JSLint как возможный инструмент. Похоже, что нет возможности закрыть это в отношении наших усилий по разработке более эффективно, что кажется проблематичным.
/*jslint browser: true, devel: true, todo: true, regexp: true */
/*global $ */
/*
Abstract:
+ This module constitutes a layer of abstraction surrounding our bootstrap dependencies.
+ This module also contains some utility functions (so find a better place for them already!).
Validation:
+ This module has been validated using JSLint (www.jslint.com).
*/
var shoelaceModule = (function () {
'use strict';
return {
showModal: function ($target) {
$target.modal('show');
},
hideModal: function ($target) {
$target.modal('hide');
},
/*jsl:ignore */
/*ignore jslint start */
stringFormat: function (format) {
var args = Array.prototype.slice.call(arguments, 1);
return format.replace(/{([^{}]*)}/g, function (match, number) {
return args[number] !== 'undefined' ? args[number] : match;
});
},
/*ignore jslint end */
/*jsl:end */
init: function () {
return this;
}
};
}());
Ответ 5
Не похоже. Некоторые Google считают несколько сообщений другими, а ответы от пользователей JSLint похожи на "Исправить ваш код, а не называть его намеренно дефектным". Кажется не совсем дружеским. Конечно, возможно, в этом случае вам нужно просто исправить код, но я оставляю это для вас, чтобы вы ответили.
Ответ 6
Я собираюсь сказать: Нет. JSLint, похоже, не имеет простого способа сказать: "игнорировать этот блок кода", очень сильно досадно. Отключение различных опций по отдельности, а затем их возврат, как кажется Мэтту, должен работать, но он не будет элегантным, как JSHint /* jshint ignore:start */
, /* jshint ignore:end */
.
Причина, по которой я рассматривал это, заключается в том, что я использую Brackets, который поставляется с JSLint как по умолчанию linter. У меня есть некоторый минитипированный сторонний код, который я скопировал в мой .js, временно, и пока он там JSLint собирается жаловаться. Что воняет, я часто хочу вставить мини-кусок на раннем этапе, что также, когда я хочу, чтобы линкер смотрел на мой код, чтобы помочь мне исключить неясные ошибки. Позже я просто минимизирую и соглашаю все с Grunt, но неспособность отключить его для блока на ранней стадии действительно, действительно, раздражает.
Ответ 7
Вы также можете:
ignoreThis(); // jshint ignore:line
Есть ли способ подавить предупреждение JSHint для одной заданной строки?
Ответ 8
Поместите /*jsl:ignore*/
и /*jsl:end*/
вокруг кода.