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

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

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

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

4b9b3361

Ответ 1

Этот ответ предлагает Google Closure Compiler, который в процессе минимизации и конкатенация вашего кода JavaScript, может удалить "мертвый код".

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

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

Также см. этот ответ, который содержит дополнительную информацию о компиляторе Google Closure.

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

Я рассматривал аналогичную задачу в течение последних нескольких недель и в итоге получил следующий 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(предположительно к элементам script) и отслеживают различные значения - voila, у вас есть список файлов .js, как указано в вашем проекте!

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

Ответ 5

В инструментах разработчика Google Chrome теперь вы можете просматривать "Покрытие" на вкладке "Источники", чтобы отображать неиспользуемые Javascript и CSS в процентах от каждого файла или даже построчно.

Здесь анонс функции в 2017 году.

enter image description here