Ein leistungsstarkes Tool zur statischen Codeanalyse, das ungenutzte Dateien in modernen Vue.js-Projekten identifiziert. Optimiert für Vue 3, Vite, Tailwind CSS und Pinia.
find-unused.mjs durchsucht dein Projekt nach Dateien, die nirgendwo importiert oder verwendet werden, und hilft dir dabei, deinen Codebase aufzuräumen. Das Tool berücksichtigt alle modernen Import-Arten, Vue-Komponenten-Registrierungen und projektspezifische Patterns.
-
Umfassende Import-Erkennung:
- Statische Imports (
import x from 'y') - Dynamische Imports (
() => import('...')) - Bare Imports (
import 'style.css') - Vue Router-Komponenten (
component: MyComponentodercomponent: () => import('...')) - Globale Komponenten-Registrierungen (
app.component('Name', Component)) - Pinia Store-Nutzung (
useXxxStore())
- Statische Imports (
-
Vue.js-Optimiert:
- Erkennt Vue Single File Components (.vue)
- Analysiert Template-Tags auf Komponenten-Nutzung
- Unterstützt sowohl PascalCase als auch kebab-case Komponenten
- Berücksichtigt Vue-Router Patterns
-
Moderne Tooling-Unterstützung:
- Vite-Konfiguration und -Konventionen
- Pinia Stores
- Tailwind CSS-Dateien
- TypeScript-Unterstützung
-
Intelligente Analyse:
- Konfigurationsdateien werden automatisch als genutzt markiert
- Implizit genutzte Verzeichnisse werden erkannt
- Plattformspezifische Dateien werden berücksichtigt
- Skriptanalyse für npm-Skripte in package.json
# Klonen aus dem Repository
git clone https://github.com/DEVmatrose/vue-find-unused.git
# Ins Projektverzeichnis wechseln
cd vue-find-unused
# Optional: Als Paket installieren
npm install -g .# Lokale Ausführung im Vue-Projekt
node path/to/find-unused.mjs
# Oder wenn global installiert
vue-find-unused=== Potenziell ungenutzte Dateien in src/ ===
COMPONENTS (10):
- src/components/admin/AdminUsers.vue
- src/components/dashboard/messages/MessageTable.vue
...
VIEWS (1):
- src/views/AdminView.vue
SERVICES (4):
- src/services/logService.ts
...
=== Statistik ===
Gesamt Dateien: 118
Referenzierte Dateien: 102
Ungenutzte Dateien in src/: 16
Ungenutzte Dateien außerhalb von src/: 0
Einstiegspunkte: 8
Die Standardeinstellungen sind für moderne Vue 3-Projekte optimiert, können aber leicht angepasst werden:
// Zu analysierende Dateiendungen
const FILE_EXTENSIONS = ['.vue', '.js', '.ts', '.mjs', '.json', '.sql', '.html', '.css'];
// Einstiegspunkte, die immer als "genutzt" gelten
const ENTRY_POINTS = [
'src/main.ts', 'src/main.js', 'src/App.vue',
'vite.config.ts', 'tailwind.config.js',
// ...
];
// Standardmäßig ausgeschlossene Verzeichnisse
const EXCLUDED_DIRS = ['node_modules', 'dist', '.git', '.vscode', 'public'];
// Implizit genutzte Verzeichnisse
const IMPLICITLY_USED_DIRECTORIES = ['src/assets', 'src/locales', 'src/styles'];
// Aliase für Import-Pfade (z.B. @/components → src/components)
const ALIASES = { '@': 'src' };-
Überprüfe die ungenutzten Dateien manuell bevor du sie entfernst, da das Tool nicht alle möglichen dynamischen Import-Patterns erkennen kann.
-
Komponenten: Ungenutzte Komponenten sind oft:
- Experimentelle Komponenten, die nie in Produktion gingen
- Duplizierte oder umbenannte Komponenten (z.B.
ProjectDetail.vueundProjectDetail1.vue) - Veraltete Komponenten, die durch neuere ersetzt wurden
-
Services: Ungenutzte Services sind typischerweise:
- Alternative Implementierungen
- Veraltete APIs oder Clients
- Hilfsdateien für Entwicklungszwecke
-
Die Kategorie "OTHER" enthält oft:
- Testdaten (JSON)
- Veraltete Konfigurationsdateien
- Test-Dateien, die nicht mehr genutzt werden
- Kann komplexe dynamische Imports mit Variablen übersehen (
import(path + componentName)) - Erkennt keine Komponenten, die ausschließlich dynamisch mit
resolveComponentodermarkRawverwendet werden - Kann bei ungewöhnlichen Projekt-Strukturen angepasst werden müssen
- Erkennt keine Komponenten, die ausschließlich über
provide/injectweitergegeben werden
Dieses Projekt steht unter der MIT-Lizenz - siehe LICENSE für Details.