Как я могу изменить путь кеша для npm (или полностью отключить кеш) в Windows?


105

Я установил Node.js на свой компьютер для разработки под управлением Windows 7 x64 вручную:

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"

Я поместил бинарный файл x64 основного узла вместе с менеджером пакетов npm в C:\Devel\nodejs. Работает как шарм, и я могу обновить основной двоичный файл, не обращаясь к установщику.

Единственная проблема, которую я не могу решить, - это перемещение папки кеша. Когда я устанавливаю локальный пакет:

npm install express

... кеш находится в %APP_DATA%\npm-cacheпапке. Я бы хотел изменить его на:

C:\Devel\nodejs\npm-cache

Как я могу изменить папку кэша npm или полностью отключить ее?


1
Расположение не должно быть:% APPDATA% \ npm-cache
arni

Ответы:


161

Вы можете изменить папку кэша npm с помощью npmкомандной строки. (см .: https://docs.npmjs.com/misc/config и, более конкретно, https://docs.npmjs.com/misc/config#cache )

Так что вы можете попробовать эту команду:

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

3
Также обратите внимание, что если вы собираетесь пойти по маршруту npmrc, глобальный файл npmrc находится не непосредственно в $ PREFIX, а в $ PREFIX \ etc
Генри Си,

3
Когда я делал это в Windows 7 с помощью Cygwin, мне приходилось добавлять косую черту перед каждой обратной косой чертой, чтобы избежать удаления обратной косой черты.
TJ.

8
После выполнения сделайте a, npm config listчтобы проверить правильность настройки
kampsj

У меня проблемы с поиском команды, о которой вы говорите, в любом месте связанного документа
AaA

40

Вы также можете установить переменную среды с помощью export npm_config_cache=/path/to/cache(Unix) или set npm_config_cache=C:\path\to\cache(Win) в качестве альтернативы npm config set(это верно для всех параметров конфигурации в npm).


Для тех, кто использует докер, вы можете добавить env var во время выполнения с помощью:

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

3
Это идеально подходит для использования в докере. Thx
ворачивается

3

Вы также можете сделать следующее:

Чтобы иметь желаемый путь кеширования для одного пакета при его установке:

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

Чтобы указать желаемый путь кеша для всех пакетов в package.json:

Просто зайдите в каталог, в котором находится package.json, как обычно, и выполните

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

Возможно, вы не найдете этого в документации npm, но я пробовал это с npm 6, и он работает. Похоже, это работает с npm 5 [См.: Как указать папку кеша в npm5 при команде установки?


1

В Windows вы можете просто перейти к нужной папке кеша и сделать npm set cache --global


0

Кроме того, я обнаружил, что запуск команды обновления также работает - например:

npm update npm

Наконец, можно проверить их каталог npm-cache, чтобы узнать, заполняется он или нет.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.