Инструмент командной строки для поиска основных синтаксических ошибок Javascript? - PullRequest
13 голосов
/ 05 декабря 2010

Существуют ли какие-либо инструменты Linux командной строки, которые могут отлавливать основные синтаксические ошибки и ошибки времени компиляции в моих файлах Javascript, даже если указанные файлы Javascript написаны для использования в веб-браузере?

Обычно я кодирую своиJavascript в то же время я кодирую свой код на стороне сервера, скажем, в Ruby или Perl.Это сэкономило бы мне значительное время, если бы я мог частично протестировать свой Javascript на стороне клиента так же, как я тестировал мой Ruby и Perl на стороне сервера - в командной строке, обычно из Emacs.Я не собираюсь отлавливать ошибки JavaScript во время выполнения на сервере, просто базовые вещи, такие как неверное имя переменной или дополнительная скобка или бегущая строка, вещи, которые могут быть найдены до фактической попытки выполнения кода.

Что я делаю сейчас для тестирования / отладки Javascript - это обычный цикл: «посетите веб-приложение в браузере; проверьте Firebug или другую консоль; вернитесь к emacs, чтобы исправить ошибки; повторите».Это, безусловно, неизбежно для более сложных типов ошибок (например, связанных с взаимодействием пользователя и сети), но синтаксическая ошибка разнообразия сада может быть обнаружена и устранена быстрее в командной строке без загрузки браузера.

IМы немного посмотрели на некоторые серверные платформы, такие как node.js, но все они, похоже, были нацелены на написание и выполнение кода на стороне сервера (поэтому все специфические биты на стороне клиента в моем коде, вероятно, сделали бы его бесполезным).Я также нашел режим emacs для javascript REPL, но, похоже, он не предназначен для выполнения только базовых проверок компиляции - он в основном загружает всю страницу через внешний графический браузер и позволяет вам манипулировать им, что я и пытаюсь сделатьизбежать.

Ответы [ 4 ]

1 голос
/ 05 декабря 2010

Это не прямой ответ на ваш вопрос, поскольку это инструмент с графическим интерфейсом, но я большой поклонник Aptana .Он использует SpiderMonkey для компиляции вашего кода в фоновом режиме и дает вам красные кривые при синтаксических ошибках при вводе.(Он также делает то же самое для HTML.) Он также пытается дать вам intellisense для JS, но это хит или промах.Приятно, когда это работает.

Поскольку я, вероятно, не убедил вас изменить среду разработки, давайте прямо ответим на ваш вопрос.Почему бы не использовать механизм SpiderMonkey для создания приложения командной строки, которое выполняет то, что вы ищете?Выглядит достаточно просто для подключения .Вам даже не придется беспокоиться о том, что вы гарантированно получите исключения во время выполнения (в вашей среде не будет объектов DOM) - вам не нужно фактически выполнять скрипт.Просто позвоните JS_CompileScript и проверьте, успешно ли.(И затем уничтожить объект JSScript, конечно.)

Или, если вы ленивы, вы можете попробовать Rhino Shell , который является инструментом Java командной строки, который выполняетJavaScript.

1 голос
/ 24 июня 2013

Я нахожу JSHint, + его плагин vim очень полезен.Легкий вес vim и возможность отслеживать ошибки синтаксиса JavaScript.JSHint также можно использовать в качестве инструмента командной строки.

https://github.com/walm/jshint.vim

1 голос
/ 05 декабря 2010

Такие вещи, как YUICompressor, также эффективно проверяют синтаксис.

0 голосов
/ 24 октября 2013

Javascript отладчик с консолью в chrome:

Браузер Chrome имеет отладчик javascript, который может обнаруживать ошибки JavaScript:

В Chrome нажмите Инструменты -> Консоль JavaScript:

enter image description here

Это страница JavaScript со следующим кодом:

var error(){

}

И он говорит мне, что с ним не так, неожиданно '('.

enter image description here

Скажите мне, что я не могу определить такую ​​функцию в строке 14 моего файла javascript.

Если щелкнуть ссылку рядом с ошибкой, вы попадете и выделите строку с ошибкой / предупреждением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...