Ответ 1
JSHint - хорошая альтернатива JSLint, и у него есть возможность включать/отключать предупреждения для all undefined переменные сразу.
Я расколол свою js-программу на многие части для разработки. Теперь, когда я запускаю одну часть через JSLint, я получаю много ошибок типа:
Проблема с символом строки 48: "XXXXXXX" использовался до того, как он был определены.
Я искал опцию "Tolerate undefined variables", но не нашел такой опции. Что я могу сделать, чтобы JSLint игнорировал переменные undefined?
JSHint - хорошая альтернатива JSLint, и у него есть возможность включать/отключать предупреждения для all undefined переменные сразу.
JSLint также распознает /* глобальную директиву */, которая может указывать JSLint, что переменные, используемые в этом файле, были определены в других файлах. Комментарий может содержать список имен, разделенных запятыми. Каждое имя может сопровождаться двоеточием и либо истинным, либо ложным, истинным, указывающим, что переменной может быть присвоен этот файл, а false - указание, что назначение не разрешено (что является значением по умолчанию).
Пример:
/*global var1, var2, var3 */
Однако я бы посоветовал вам не делать этого и вместо этого писать простой script, который собирает все файлы и проверяет полученный файл с помощью JSLint.
Ответ "использовать другую программу" неприемлем.
Перейдите в раздел "Настройки" > "Параметры пакета" > "JSLint" > "Расширенные настройки сборки".
Внутри массива для "cmd" добавьте "- undef" . Он должен выглядеть примерно так:
{
"cmd": [
"node",
"${packages}/JSLint/linter.js",
// tolerate missing 'use strict' pragma
"--sloppy",
// suggest an indent level of two spaces
"--indent", "2",
// assume node.js to predefine node globals
"--node",
// tolerate unfiltered for in
//"--forin",
// tolerate dangling _ in identifiers
"--nomen",
// tolerate many var statements per function
"--vars",
// tolerate ++ and --
"--plusplus",
// tolerate Douglas Crockford
"--stupid",
"--todo",
// -----------------------------------------------
// tolerate undefined variables
"--undef",
// -----------------------------------------------
"$file"
],
"file_regex": "^\\/.*\\/([^\\/]*)$",
"line_regex": ".*\/\/ Line ([0-9]*), Pos ([0-9]*)$",
"selector": "source.js, source.css, source.json, source.sass, source.less, source.html"
}
используйте предопределенные параметры в настройках. Вы увидите, что я добавил "NAMESP" в конце массива.
Обратите внимание, что я исправил опечатку для jQuery (от JQuery до jQuery).
// examples using predef flag.
"--predef", "['angular', 'document', '\\$', '_', 'jQuery', 'NAMESP']"