Ontwikkelaarscaches in Windows: wat npm, pip en Gradle bewaren
Een project is nauwelijks gegroeid, en toch is de C-schijf enkele GB aangekomen. Een map van npm, pip of Gradle vinden is geen reden om die helemaal te verwijderen. Downloadcaches, projectafhankelijkheden, build-uitvoer en bewaarde toolversies doen verschillend werk, en opnieuw bouwen hangt ervan af of hun bronnen beschikbaar blijven.
Zoek de locatie die het hulpmiddel echt gebruikt
Deze opdrachten tonen in een terminal met de relevante tools geïnstalleerd de cachelocatie van npm en informatie over de pip-cache, zonder inhoud te verwijderen:
npm config get cache
python -m pip cache info
De pip-vraag gebruikt de omgeving die python kiest. Heb je cachelocaties gewijzigd, volg dan de uitvoer. De configuratiereferentie van npm en de cachereferentie van pip beschrijven de vragen. Het standaardpad van één pc is niet de configuratie van elk project.
Onderscheid vier soorten mappen
| Type | Voorbeelden | Controleren vóór verwijderen |
|---|---|---|
| Caches van pakketdownloads | npm-cache, HTTP- en wheel-caches van pip | Of een latere installatie downloads nodig heeft, vooral offline |
| Projectafhankelijkheden | node_modules, virtuele omgevingen, vendor |
Of pakketten, lockbestanden, bronnen en installatiestappen beschikbaar blijven |
| Build-uitvoer | dist, build, obj |
Of het gegenereerde inhoud is en iets bevat dat met de hand is toegevoegd |
| Toolversies en lokale opslagplaatsen | Gedownloade Gradle-versies en sommige lokaal geïnstalleerde pakketten | Of de volgende synchronisatie of build ze direct nodig heeft |
Opnieuw bouwen heeft een prijs. Netwerktoegang, beschikbare bronnen, authenticatie en offline-eisen tellen. Een afhankelijkheidsmap is geen universeel opschoondoel alleen omdat de naam bekend is.
Een cacheprobleem verschilt van een afhankelijkheidsprobleem
De downloadcache van npm controleert inhoud, en de documentatie beschrijft het opnieuw ophalen van beschadigde gegevens. Een installatiefout is geen voldoende reden om de cache te legen. Een netwerkstoring, een niet-beschikbare vergrendelde versie of een afhankelijkheidsconflict kan daarna ongewijzigd blijven.
pip scheidt gecachte HTTP-antwoorden van gecachte wheels, inclusief eerder gebouwde installeerbare pakketten. De documentatie over caching legt beide uit. pip cache list toont wheels, niet elk bestand in de cachemap. Virtuele omgevingen isoleren geïnstalleerde afhankelijkheden, maar meerdere omgevingen kunnen een pip-cache delen. Een andere python kiezen garandeert geen aparte cachelocatie. Lees de uitvoer van de vraag.
Een lockbestand noteert versies, geen back-up van pakketten
Neem een offline project waarvan package-lock.json intact is, maar waarvan zowel node_modules als de downloadcaches zijn verwijderd. Het versierecord blijft, maar de pakketten die nodig zijn om te installeren kunnen ontbreken. Een lockbestand stuurt de versiekeuze. Het bewaart geen pakketbestanden en geen toegang tot een privéregister.
De documentatie van Gradle over de afhankelijkhedencache legt uit waarom offline builds de nodige artefacten lokaal nodig hebben. De gids over mappen en bewaring scheidt versiespecifieke caches, gedeelde afhankelijkheden en Wrapper-distributies. Stel vast welke categorie is gegroeid voordat je een grote map .gradle leegt. Oude vermeldingen die het hulpmiddel beheert en afhankelijkheden die een actief project nog nodig heeft verdienen verschillende beslissingen.
Wat Mole afhandelt en wat bij het hulpmiddel blijft
Mole voor Windows toont herkende caches van npm, pip en andere. Inhoud die in gebruik is blijft beschermd, en items met gegevens die niet vanzelf terugkomen wachten op controle. Het behandelt niet elke afhankelijkheidsmap van een project als algemene cache. Een opschoonitem selecteren geeft geen toestemming om elk Node.js- of Python-proces op de pc te stoppen.
caches en wrapper\dists van Gradle blijven buiten het opschoonbereik van Mole. Synchronisatie van Android Studio en de volgende build kunnen ze direct nodig hebben. Laat Gradle de bewaring beheren in plaats van een versie te legen alleen om die opnieuw te downloaden.
Beheer projectuitvoer volgens de instructies van dat project. De tabel legt maprollen uit. Die betekent niet dat Mole elk genoemd projectpad scant en vanzelf verwijdert. Bron, configuratie, sessies en lokale modellen worden geen caches alleen omdat ze in ontwikkelmappen staan.
Controleer daarna met hetzelfde project
Houd een onafhankelijke kopie van wat je nodig hebt, en handel daarna geselecteerde caches af. Herhaal de oorspronkelijke installatie of build van het project en noteer downloads die nodig zijn. Leeg afhankelijkheden, toolversies en downloadcaches niet samen vlak voor een offline presentatie of reis.
Nemen virtuele schijven, modellen of grote uitvoer de meeste opslag in, gebruik dan de gids voor grote bestanden. De cachegids scheidt gewone caches van persoonlijke gegevens.