Para refactorizar un proyecto del lado del cliente, estoy buscando una forma segura de encontrar (y eliminar) el código no utilizado.
¿Qué herramientas utiliza para encontrar código no utilizado/muerto en grandes proyectos de reacción? Nuestro producto ha estado en desarrollo durante algunos años y se está volviendo muy difícil detectar manualmente el código que ya no está en uso. Sin embargo, intentamos eliminar la mayor cantidad posible de código no utilizado.
También se agradecen las sugerencias de estrategias/técnicas generales (que no sean herramientas específicas).
Gracias
Para proyectos de nodo, ejecute el siguiente comando en la raíz de su proyecto:
npx unimported Si está utilizando anotaciones de tipo de flujo, debe agregar el indicador --flow :
npx unimported --flowFuente y documentos: https://github.com/smeijer/unimported
Al igual que las otras respuestas, probé muchas bibliotecas diferentes pero nunca tuve un éxito real.
Necesitaba encontrar archivos completos que no se estén utilizando. No solo funciones o variables. Para eso, ya tengo mi linter.
He intentado deadfile , unrequired , trucker , pero todo sin éxito.
Después de buscar durante más de un año, quedaba una cosa por hacer. Escribir algo yo mismo.
unimported comienza en su punto de entrada y sigue todas sus declaraciones de importación/requerimiento. Todos los archivos de código que existen en su carpeta de origen, que no se importan, se informan.
Tenga en cuenta que, en este momento, solo busca archivos de origen. No para imágenes u otros activos. Como esos a menudo se "importan" de otras maneras (a través de etiquetas o mediante css).
Además, tendrá falsos positivos. Por ejemplo; a veces escribimos scripts destinados a simplificar nuestro proceso de desarrollo, como los pasos de compilación. Esos no son importados directamente.
Además, a veces instalamos dependencias de pares y nuestro código no las importa directamente. Esos serán informados.
Pero para mí, unimported ya es muy útil. He eliminado una docena de archivos de mis proyectos. Así que definitivamente vale la pena intentarlo.
Si tiene algún problema con él, por favor hágamelo saber. A través de problemas de github, o contácteme en twitter: https://twitter.com/meijer_s
En primer lugar, muy buena pregunta, en proyectos grandes, los codificadores suelen probar muchas líneas de prueba de código y, al final del resultado, es difícil encontrar el código no utilizado.
Hay dos posibles que deben funcionar para usted: generalmente lo hago cada vez que necesito eliminar y reducir el código no utilizado en mi proyecto.
IDE WebStorm de primera vía:
Si está utilizando el IDE web-storm para el desarrollo de JS o React JS / React Native o Vue js, etc., infórmenos e indíquenos muchas menciones con un color diferente o una advertencia roja como código no utilizado dentro del editor.
pero no funciona en su escenario particular, hay otra forma de eliminar el código no utilizado.
Biblioteca no requerida de 2da vía:
La segunda forma de eliminar el código no utilizado dentro del proyecto es una biblioteca no requerida que puede visitar aquí: github no requerido
otra biblioteca llamada depcheck bajo NPM y github aquí
Simplemente siga su método apropiado: cómo usarlos solucionará este problema no utilizado fácilmente
Espero que eso te ayude
Trabajo en un gran proyecto React front-end (más de 1100 archivos js) y me encontré con el mismo problema: ¿cómo saber qué archivos ya no se usan?
He probado las siguientes herramientas hasta ahora:
Ninguno de ellos realmente funcionó. Una de las razones es que usamos importaciones "no estándar". Además de las rutas relativas regulares en nuestras import , también usamos rutas resueltas por la función de resolución del paquete web que básicamente nos permite usar import 'pages/something' en lugar de la engorrosa import '../../../pages/something' .
Así que aquí está la solución que finalmente encontré gracias a Liam O'Boyle (elyobo) @GitHub: https://github.com/MatthieuLemoine/unused-webpack-plugin
Es un complemento de paquete web, por lo que solo funcionará si su paquete es un paquete web.
Personalmente, me parece bien que no necesite ejecutarlo por separado, sino que está integrado en su proceso de construcción y arroja advertencias cuando algo no está bien.
Nuestro tema de investigación: https://github.com/spencermountain/unrequired/issues/6