Обнаружение связанных и неиспользуемых файлов и неиспользуемого JavaScript

Я только что закончил свой сайт, который я начал 2 года назад. Я всегда пробовал новые вещи, которые иногда включали добавление различных структур или других внешних файлов JS.

Теперь я неНе знаю, какие из связанных файлов / строк JS не используются. Есть ли инструмент, который может обнаружить эти файлы и строки кода? Это сэкономило бы мне много времени.

 Aleks G01 нояб. 2012 г., 11:25
@BrunoVieira Seeэтот мой вопрос для проблем с этим подходом
 Bruno Vieira01 нояб. 2012 г., 11:21
Для CSS инструменты разработчика webkit из Google Chrome показывают неиспользуемые стили. Что касается JavaScript, яжду ответа тоже
 Michael Schmidt01 нояб. 2012 г., 13:12
@ BrunoVieira: Да, этот инструмент я использую. Так что я ищу что-то вроде этого ...
 Aleks G01 нояб. 2012 г., 11:23
@BrunoVieira ОП не спрашивает о неиспользуемых стилях, но неиспользуемые файлы javascript, которые находятся в дереве каталогов, но не упоминаются ни на одной из этих страниц. Также обратите внимание, что тамс более чем одной страницей, но целым приложением.
 Bruno Vieira01 нояб. 2012 г., 11:23
Тот'почему я нене отвечал, а сделал комментарий, потому что это может быть полезно, если бы не он для кого-то еще @AleksG

Ответы на вопрос(4)

Для этого ответа я не уверен, что этополезно или нет. Как насчет попытки сонара. У Sonar есть плагин javascript, который может проверять качество вашего js-кода и выводить список неиспользуемого кода.

 OQJF01 нояб. 2012 г., 11:25
Я нашел какого-то парня, говорящего об этомjslint.com/lint.htmlМожет быть, это может дать вам руку.
 Michael Schmidt01 нояб. 2012 г., 13:15
Спасибо за Ваш ответ. Я также нашел этот вопрос на SO. Но он ищет качество кода, например: он соответствует новейшим стандартам, сколько комментариев ... Проблема в том, что он также анализирует неиспользуемый код, но не отображает, используется он или нет ... Я '

в течение последних нескольких недель я сам смотрел на аналогичную задачу и в итоге получил следующееPowerShell запрос:

PS> Get-ChildItem -Path C:\PathToProject\ -Filter *.as?x -Recurse 
| select-string -pattern "src=""([^""]*.js)""" 
| Select -Expand Matches | Foreach { $_.Groups[1].Value } | select -unique

Сначала он рекурсивно выбирает все файлы .aspx и .ascx в каталоге нашего проекта, затем находитsrc Значения атрибутов, которые относятся к файлам .js (предположительно, из элементов скрипта) и отслеживают различные значения - вуаля, у вас есть список файлов .js, на которые есть ссылки в вашем проекте!

Было бы довольно просто настроить запрос так, чтобы он соответствовал вашему конкретному проекту и его структуре. Убедитесь, что вы неПеребирать устаревшие файлы, которые могут содержать устаревшие ссылки. Учет несоответствий разметки - вы могли использовать одинарные кавычки для значений атрибутов в прошлом или оставить ненужные пробелы вокруг "равен» символ или оба? Не могли бы вы включить эти файлы программно или асинхронно из других файлов js? и т. д.

 Michael Schmidt02 нояб. 2012 г., 10:56
Привет! Хорошо. Выглядит сложно. Я пробую это в воскресенье ... Ядоложу

У меня возникла такая необходимость, поэтому я создал инструмент, который обнаруживает неиспользуемый JS на стороне браузера, а не только из исходных текстов, чтобы он также мог тестировать сторонние сценарии.

Он работает путем создания локального прокси на вашем компьютере, который перехватывает запросы JavaScript и обрабатывает эти файлы на лету. Инструмент может определить, какие части инструментальных файлов были использованы страницей, а какие нет.т.

Я сделал это с открытым исходным кодом, и вы можете найти его здесь:https://github.com/gmetais/unusedjs.

Решение Вопроса

это ответ предложенияGoogle»Закрытие Компилятор которые в процессе минимизации и объединения вашего кода JavaScript могут быть удалены "мертвый код ".

Цитировать издокументация для уровней компиляции:

Компиляция с ADVANCED_OPTIMIZATIONS удаляет код, который доказуемо недоступен. Это особенно полезно в сочетании с большими библиотеками. Если вы используете только несколько функций из большого файла библиотеки, компилятор может удалить из своего вывода все, кроме этих функций.

Также смэтот ответ который содержит больше информации о Google 'Закрытие компилятора.

 Michael Schmidt02 нояб. 2012 г., 10:56
Привет! Спасибо за ссылку. У меня нетВремя еще читать документацию, и мой первый "грязный» попытка была действительно запутывающей ... я пробую это в воскресенье ... ядоложу
 Whymarrh03 нояб. 2012 г., 00:34
@dTDesign you 'Добро пожаловать Надеюсь, все получится.
 Michael Schmidt12 нояб. 2012 г., 10:16
Извините за столь поздний ответ. Была тяжелая неделя. Я попробовал ваше решение, и оно работает так, как я хочу :) Большое спасибо! +1 & Принято :)
 Michael Schmidt02 нояб. 2012 г., 10:58
И спасибо за ваши изменения :)

Ваш ответ на вопрос