Подтвердить что ты не робот

Доступен ли JSLint для использования в автономном режиме?

Я хотел бы использовать JSLint, но я опасаюсь инструментов, которые имеют доступ к моему нефильтрованному исходному коду. Есть ли автономная версия или есть другой аналогичный инструмент, который выполняет "lint проверку ошибок" для автономной работы JavaScript?

Изменить: Один с графическим интерфейсом, который показывает вам список ошибок, а не интерфейс командной строки?

4b9b3361

Ответ 1

Если вам нравится веб-интерфейс JSLint, вы можете сделать File > Save Page As... и Save as type: Web Page, complete (в Firefox, выполнение этого в Internet Explorer может немного отличаться) в локальной папке.

Я меняю имя на jslint.htm, чтобы получить его под 8.3 без пробелов.

Кажется, что он работает при сохранении локально.

Три вещи:

  • Это может нарушить его лицензию, хотя я оставляю авторское право неповрежденным и не изменяю ни один из его кода, и технически мой веб-браузер уже создал копию своего сайта на моем локальном HD, поэтому я не уверен, "В нарушение или нет, и я не юрист, поэтому я буду продолжать делать это, пока не получаю письмо, в котором мне следует остановиться.
  • Страница может каким-то образом по-прежнему отправлять ваш код в Интернет, хотя вероятность его возможности очень удалена. Тем не менее, версии WSH или Rhino, вероятно, могли бы отправить код, который вы отправляете в Интернет, проще, чем версия на локально сохраненной веб-странице (если вы параноик).
  • Вы поправитесь с исправлениями или обновлениями, которые Douglas делает. Но то же самое относится и к версиям WSH или Rhino, если вы не обновляете их регулярно.

Ответ 2

JSLint может работать автономно с помощью WSH или Rhino:

http://www.jslint.com/lint.html#try

Изменить. За два года, прошедших с момента запроса этого вопроса, JSLint отказался от поддержки Rhino и WSH. Я призываю всех, кто заинтересован в том, чтобы нарисовать свой код, чтобы также проверить JSHint. Это вилка JSLint, которая стремится быть более гибкой, чем оригинал, но также поддерживает Node, Rhino и WSH (в дополнение к браузеру, конечно).

Ответ 3

Да:

  • В Windows используйте jslint.js + WSH.
  • В системах, которые могут запускать Rhino, используйте jslint.js + Rhino.

В принципе, вам просто нужен встроенный компилятор JavaScript для запуска jslint.js.

Ответ 4

Там есть еще один JS Linter, называемый JavaScript Lint, который имеет как онлайн, так и загружаемые версии командной строки. Я использую загружаемую версию все время. Я думал о том, чтобы интегрировать его в SVN как часть крючка. Мне нравится это лучше, чем JSLint, потому что у него больше возможностей и, похоже, обнаруживает больше вещей. Он может быть настроен для обработки определенных идентификаторов как предопределенных, для наборов инструментов и т.п., Что позволяет ему проверять использование переменных undefined, которые, я уверен, JSLint не может сделать.

Ответ 5

Если вы находитесь в среде Java, вы можете найти полезный инструмент jslint4java. Он поставляется в варианте командной строки и также может быть интегрирован в ant script. Нет графического интерфейса, потому что я плохо отношусь к этим.: -)

Ответ 7

У меня есть инструмент для запуска JSLint из командной строки с помощью SpiderMonkey оболочки или Rhino. Он также включает плагин для Vim, который позволяет вам нажимать кнопку, чтобы автоматически выделять любые проблемные строки при редактировании файла:

http://github.com/hallettj/jslint.vim/

Ответ 8

Если вы используете TextMate, я создал пакет, который запускает JSLint и отображает вывод в графическом окне. Все это самодостаточно; ничего не нужно устанавливать для его использования:

Просмотр JSLint.tmbundle в GitHub

Ответ 9

Cory Bennet хороший пост в командной строке JSLint. Большая часть ваших настроек будет работать SpiderMonkey. Не так плохо, если вы используете Linux; сложнее, если вы используете Windows и Cygwin. И вот несколько больше обсуждений и сравнения со временем выполнения Rhino.

UPDATE: 2013.11 - если вы используете node.js в командной строке (и почему бы и нет?), вы можете запустить оба jslint и новый eslint. [NB: я предоставил отчеты об ошибках и тестовый код для проверки.] Оба из них способ легче настроить, чем то, что у меня выше....

Ответ 10

Попробуйте Google Closure Linter. Он имеет больше возможностей, чем JSLint.

Ответ 11

Так как сам JSLint написан на JavaScript, вы можете запустить его в автономном режиме, скопировав HTML и ссылающиеся файлы JavaScript локально. IE7 "Сохранить как..." "Веб-страница, полная" функция делает это просто отлично.

Ответ 13

У меня JSLint с Node.js проверяющим кодом в моих сценариях развертывания, чтобы я не случайно нажимал код, который мог бы сломать мой сайт. Это может сэкономить много времени на решении проблем поддержки клиентов.

Ответ 14

Если вы используете TextMate, JSLintMate пакет имеет простой интерфейс, поддерживает как JSLint, так и JSHint и позволяет настраивать настраиваемые параметры различными способами (например, файл конфигурации для каждого проекта, глобальные параметры для всех проектов).

JSLintMate screenshots

Ответ 15

Если вы уже используете рубиновые камни, вы можете установить gslint gem в одну команду: http://rubygems.org/gems/jslint

Ответ 16

Вместо загрузки в браузере вы также можете напрямую загрузить источники. Это имеет то преимущество, что вы можете обновить их с помощью системы управления версиями и прочитать прокомментированный исходный код.

git clone https://github.com/douglascrockford/JSLint.git

Это дает вам исходные файлы HTML и JS, но вы не можете использовать их так, как они есть. Следуйте за процессом сборки в README. В двух словах вам нужно git clone два других проекта JS Дугласа Крокфорда, затем объединить (и свести к минимуму) некоторые JS файлы из всех трех репозиториев git в web_jslint.js.

Я сделал это так: компрессор YUI:

cat ../ADsafe/adsafe.js ../JSON-js/json2.js intercept.js jslint.js > /tmp/web_jslint.uncomp.js
java -jar ../../yuicompressor-2.4.7.jar /tmp/web_jslint.uncomp.js > web_jslint.js

Затем откройте jslint.html с вашим браузером.

Ответ 17

Очень легко воссоздать то, что Крокфорд на JSLint.com. JSLint.com онлайн-версия .js - это миниатюрный конгломерат нескольких файлов, которые содержат некоторые накладные расходы, которые я не совсем понимаю, например что ADSAFE материал. Пусть вместо этого разделите его на простейшую оболочку.

Построение собственной HTML-оболочки для JSLint:

Здесь код на веб-странице, который будет искать jslint.js(последняя версия JSLint, в настоящее время можно найти в github здесь как исходный текст) в том же каталоге и убирать его аналогично тому, как это делает JSLint.com.

<html>
    <head>
        <script src="jslint.js"></script>

        <script>
            function jslintalizeMe()
            {
                var i, divOut, errs, errsMsg = "";

                divOut = document.getElementById("errors");
                divOut.innerHTML = "";

                if (!JSLINT(document.forms[0].elements[0].value))
                {
                    errs = JSLINT.errors;
                    for (i=0; i < errs.length; i++)
                    {
                        err = errs[i];
                        if (null !== err)
                        {
                            if (undefined !== err.id)
                            {
                                errsMsg += "Error: " 
                                + err.code 
                                + " -- line " 
                                + err.line 
                                + " char " 
                                + err.character + "<br />"
                                + "    " 
                                + err.evidence + "<br />"
                                + "    " +
                                 err.reason + "<br /><br />\n";
                            }
                            else
                            {
                                errsMsg += err.reason;
                            }
                        }
                    }
                    divOut.innerHTML = errsMsg;
                }
            }
        </script>

    </head>

    <body>

        <form>
            <textarea rows="24" cols="80"
                placeholder="// Paste quality code here"></textarea>
            <br />
            <button onclick="jslintalizeMe();return false;">JSLint</button>
        </form>

        <div id="errors"></div>
    </body>
</html>

^ Из старое сообщение в блоге.

Это до пресловутого читателя, чтобы сделать GUI более привлекательным, но это отчеты, а также сайт JSLint теперь делают.

sample JSLint output from wrapper code