Hoe kan ik het cachepad voor npm wijzigen (of de cache volledig uitschakelen) in Windows?

Ik heb Node.js op mijn Windows 7 x64-ontwikkelmachine geïnstalleerd, op de handmatige manier:

mkdir C:\Devel\nodejs
cd C:\Devel\nodejs
set NODE_PATH=%CD%
setx /M PATH "%PATH%;%NODE_PATH%"
setx /M NODE_PATH "%NODE_PATH%\node_modules"

Ik heb de belangrijkste node x64 binarysamen met npm-pakketbeheerderin C:\Devel\nodejs. Werkt als een tierelier en ik kan het belangrijkste binaire bestand bijwerken zonder tussenkomst van het installatieprogramma.

Het enige probleem dat ik niet kan oplossen, is het verplaatsen van de cachemap. Als ik een lokaal pakket installeer:

npm install express

… cache is geplaatst in de map %APP_DATA%\npm-cache. Ik wil het veranderen in:

C:\Devel\nodejs\npm-cache

Hoe kan ik de npm-cachemap wijzigen of volledig uitschakelen?


Antwoord 1, autoriteit 100%

U kunt de npm-cachemap wijzigen met behulp van de npm-opdrachtregel. (zie https://docs.npmjs.com/cli/v6/using -npm/config#cache)

Dus misschien wil je dit commando proberen:

> npm config set cache C:\Devel\nodejs\npm-cache --global 

Antwoord 2, autoriteit 24%

Je kunt ook een omgevingsvariabele instellen met export npm_config_cache=/path/to/cache(Unix) of set npm_config_cache=C:\path\to\cache( Win) als alternatief voor npm config set(dit geldt voor alle configuratie-opties in npm).


Voor iedereen die docker gebruikt, kunt u de env var tijdens runtime toevoegen met:

docker run -e npm_config_cache=/path/to/cache mydockerimage:tag

Antwoord 3, autoriteit 5%

U kunt ook het volgende doen:

Om het cachepad naar wens te hebben, voor een enkel pakket tijdens het installeren:

npm install packageName --cache path/to/some/folder

Om het cachepad naar wens te hebben, voor alle pakketten in package.json:

Wees gewoon in de map waar package.json is zoals gewoonlijk en doe

npm install --cache path/to/some/folder

Misschien vindt u dit niet in de npm-documentatie, maar ik heb het geprobeerd met npm 6 en het werkt.
Het lijkt erop dat het werkt sinds npm 5 [Zie: Hoe om de cachemap in npm5 op te geven bij de installatieopdracht?


Antwoord 4, autoriteit 2%

In Windows kun je gewoon cd naar de gewenste cachemap en npm set cache --global

doen


Antwoord 5

Bovendien ontdekte ik dat het uitvoeren van een update-opdracht ook werkt – bijvoorbeeld:

npm update npm

Ten slotte kan men hun npm-cache-directory controleren om te zien of deze wordt gevuld of niet.


Antwoord 6

Oplossing

Plak de volgende code in het npmrc-bestand.

Locatie van npmrc-bestand: C:\Program Files\nodejs\node_modules\npm\npmrc

prefix=D:\nodejs\npm
cache=D:\nodejs\npm-cache

Opmerkingen:
Er is geen ‘.’ voor npmrc

Diagrammen

NPMRC-bestandsmap ziet er als volgt uit

NPMRC-inhoud ziet er zo uit

Hopelijk helpt het. Proost

Other episodes