Detectar files vinculados y no utilizados y JavaScript no utilizado

Acabo de terminar mi website, que comencé hace 2 años. Siempre probé cosas nuevas, que a veces incluían agregar frameworks diferentes u otros files JS externos.

Ahora no sé cuáles de los files / líneas vinculados de JS no se utilizan. ¿Hay alguna herramienta que pueda detectar estos files y líneas de código? Me ahorraría mucho time.

Esta respuesta ofrece el comstackdor de cierre de Google que, en el process de minimizar y concatenar su código JavaScript, puede eliminar el "código muerto".

Citando de la documentation para los niveles de compilation:

La compilation con ADVANCED_OPTIMIZATIONS elimina el código que es probablemente inalcanzable. Esto es especialmente útil en combinación con grandes bibliotecas. Si utiliza solo unas pocas funciones de un file de biblioteca grande, el comstackdor puede eliminar todo, excepto esas funciones, de su salida.

También vea esta respuesta que contiene más información sobre el comstackdor de cierre de Google.

Tenía esta necesidad, así que creé una herramienta que detecta JS sin usar en el lado del browser, no solo desde las fonts, por lo que también puede probar scripts de terceros.

Funciona al crear un proxy local en su computadora que intercepta las requestes de JavaScript e instrumenta estos files sobre la marcha. La herramienta es capaz de detectar qué partes de los files instrumentados han sido utilizados por la página y cuáles no.

Lo hice de código abierto y lo puede encontrar aquí: https://github.com/gmetais/unusedjs .

Para esta respuesta, no estoy seguro de si es útil o no. ¿Qué tal intentar Sonar? Sonar tiene un complemento de javascript que puede verificar la calidad del código js y enumerar el código que no se usó.

He estado buscando una tarea similar durante las últimas semanas y terminé con la siguiente consulta de 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 

Primero selecciona recursivamente todos los files .aspx y .ascx en nuestro directory de proyectos, luego encuentra los valores de los attributes src que hacen reference a los files .js (presumiblemente los de los elementos de script) y rastrea valores distintos – voila, usted tiene una list de files .js como referencedo en tu proyecto!

Sería bastante sencillo ajustar la consulta para que se adapte a su proyecto específico y su estructura. Asegúrese de no iterar sobre files desactualizados que pueden include references obsoletas. Tenga en count las discrepancias de marcado: ¿podría haber utilizado comillas simples para los valores de los attributes en el pasado, o dejó espacios en blanco innecesarios alnetworkingedor del símbolo "igual", o ambos? ¿Podría include estos files de forma programática o asincrónica desde dentro de otros files js? etcétera etcétera.