Кто-нибудь знает хороший расширяемый анализатор исходного кода, который исследует файлы JavaScript?
В значительной степени, анализ типичных ошибок и проблем совместимости, а также возможность изучить соглашения об именах и стиль.
Можете ли вы предоставить пример анализатора кода для другого языка?
Примером того, что я хотел бы видеть, является что-то вроде MS StyleCop или FXCop, но для JavaScript вместо байт-кода C# или MSIL.
После многих лет использования JSHint и JSLint я переместил ответ в JSHint. JSLint, на мой взгляд, слишком самоуверенный и строгий.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


JSLint исторически был основным инструментом для этого, но теперь существует еще несколько:
Я нашел JSLint, который помогает исправить множество распространенных ошибок и т. Д .; однако я надеюсь найти что-нибудь, что я смогу добавить свои собственные правила и тому подобное, чтобы помочь автоматизировать некоторые вещи, касающиеся стандартов кодирования, которые моя компания хочет внедрить в JavaScript.
Мне нужно подробнее изучить его модель расширяемости.
Я бы тоже хотел увидеть что-то более мощное, но пока ничего не нашел ...
В список инструментов для статического анализа кода в википедии есть несколько инструментов, которые поддерживают JavaScript, вы также можете увидеть Отладка JavaScript, если какой-либо из упомянутых инструментов поможет. В Юй (Yahoo! Developer Network) есть еще несколько хороших инструментов, а также множество полезных компонентов.
Я всегда сам использовал JSLint, и это единственный инструмент анализа JS, который я пробовал. Я все больше и больше увлекаюсь JavaScript, но хорошие инструменты все еще остаются проблемой. :(
Я использую Aptana для анализа файлов JavaScript. Он ловит много глупостей (если условие с одним =). Он также описывает структуру класса. Я считаю, что в него встроена реализация jslint.
В интересах поддержания этого вопроса в актуальном состоянии существует форк JSLint под названием JSHint. Объяснение того, почему был создан JSHint, можно найти в здесь, но вкратце:
JSHint is a fork of JSLint, the tool written and maintained by Douglas Crockford. JSLint served me well for quite some time but in the past few months it has gotten uncomfortably opinionated and hostile towards your code. It is quickly transforming from a tool that helps developers to prevent bugs to a tool that makes sure you write your code like Douglas Crockford.
Ха, голосование "против" :-) Это был ты, Дуглас?
Хотя это уже старый вопрос, я переместил ответ в JSHint. Я уважаю как JSLint, так и JSHint; однако JSLint для меня слишком самоуверен и строг. JSHint дает свободу стиля, которую я предпочитаю (а именно, сначала запятую), и по-прежнему предоставляет много возможностей с точки зрения проверки.
Если вы еще не нашли его, вам стоит взглянуть на Google Closure Compiler. Компилирует ваш JavaScript и находит ошибки в коде. http://code.google.com/closure/compiler/docs/gettingstarted_api.html
JSAnalyse только что был опубликован на codeplex. Это инструмент, который анализирует зависимости между файлами javascript. Вы даже можете определить разрешенные зависимости, и JSAnalysis проверяет, выполняются ли определенные правила или нет. Это позволяет отслеживать зависимости javascript даже в больших проектах и иметь чистую архитектуру.
JSAnalyse можно запустить как инструмент командной строки или настроить через Visual Studio Layer Diagramm. Также его легко интегрировать в сборку. С закрытой регистрацией вы можете держать зависимости под контролем.
Выглядит интересно. Единственное, что мне не нравится на первый взгляд, это то, что для этого требуется .Net (и Visual Studio?). Я не знаю, может ли кто-нибудь использовать это для анализа своего JS в Python, Ruby, Java и т. д. Тем не менее, он ДЕЙСТВИТЕЛЬНО выглядит интересным, и его придется проверить. Спасибо, что добавили ответ.
Существует синтаксический анализатор, называемый инфраструктурой синтаксического анализа ECMAScript для многоцелевого анализа (esprima), расположенный по адресу http://esprima.org/, с несколькими примерами инструментов, которые можно использовать в некотором анализе.
Инфраструктура парсинга ECMAScript для многоцелевого анализа
Я попробовал ESlint, и он мне понравился ... вы также можете добавить туда собственные правила ... Вот репозиторий на github: https://github.com/nzakas/eslint
Помимо JSLint, JSHint, ESLint, Plato, Google Closure-Linter есть еще один инструмент под названием Esprima. Вот ссылка на него: http://esprima.org/
Кроме того, это ссылка на github для инструмента Esprima: https://github.com/ariya/esprima
У меня возникли проблемы с установкой, когда я пробовал использовать Google Closure-Linter для Windows. Но на веб-странице упоминается, что поддержка Windows является экспериментальной. Все остальные инструменты просты в использовании.
Что вы ищете в плане анализа?