Анализатор исходного кода JavaScript

Кто-нибудь знает хороший расширяемый анализатор исходного кода, который исследует файлы JavaScript?

Что вы ищете в плане анализа?

Jason Bunting 01.12.2008 19:34

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

JamesEggers 01.12.2008 19:36

Можете ли вы предоставить пример анализатора кода для другого языка?

Chris MacDonald 01.12.2008 19:39

Примером того, что я хотел бы видеть, является что-то вроде MS StyleCop или FXCop, но для JavaScript вместо байт-кода C# или MSIL.

JamesEggers 01.12.2008 19:46

После многих лет использования JSHint и JSLint я переместил ответ в JSHint. JSLint, на мой взгляд, слишком самоуверенный и строгий.

JamesEggers 13.04.2012 16:54
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
46
5
56 050
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

JSLint исторически был основным инструментом для этого, но теперь существует еще несколько:

Я нашел JSLint, который помогает исправить множество распространенных ошибок и т. Д .; однако я надеюсь найти что-нибудь, что я смогу добавить свои собственные правила и тому подобное, чтобы помочь автоматизировать некоторые вещи, касающиеся стандартов кодирования, которые моя компания хочет внедрить в JavaScript.

http://www.jslint.com/

Мне нужно подробнее изучить его модель расширяемости.

Я бы тоже хотел увидеть что-то более мощное, но пока ничего не нашел ...

chills42 01.12.2008 19:35

В список инструментов для статического анализа кода в википедии есть несколько инструментов, которые поддерживают 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.

Ха, голосование "против" :-) Это был ты, Дуглас?

CodeNaked 23.08.2011 19:14

Хотя это уже старый вопрос, я переместил ответ в JSHint. Я уважаю как JSLint, так и JSHint; однако JSLint для меня слишком самоуверен и строг. JSHint дает свободу стиля, которую я предпочитаю (а именно, сначала запятую), и по-прежнему предоставляет много возможностей с точки зрения проверки.

JamesEggers 13.04.2012 16:53

Если вы еще не нашли его, вам стоит взглянуть на 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 и т. д. Тем не менее, он ДЕЙСТВИТЕЛЬНО выглядит интересным, и его придется проверить. Спасибо, что добавили ответ.

JamesEggers 13.04.2012 16:58

Существует синтаксический анализатор, называемый инфраструктурой синтаксического анализа 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 является экспериментальной. Все остальные инструменты просты в использовании.

Другие вопросы по теме