Як я можу змінити шлях кеша на npm (або повністю відключити кеш) у Windows?


104

Я встановив 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 бінарник разом з НПМ менеджером пакетів в C:\Devel\nodejs. Діє як шарм, і я можу оновити основний бінарний файл, не маючи справи з інсталятором.

Єдина проблема, яку я не можу вирішити - це переміщення папки кеша. Коли я встановлюю локальний пакет:

npm install express

... кеш розміщується під %APP_DATA%\npm-cacheпапкою. Я хотів би змінити це на:

C:\Devel\nodejs\npm-cache

Як я можу змінити папку кешу npm або повністю відключити її?


1
Не повинно бути розташування:% APPDATA% \ npm-cache
arni

Відповіді:


159

Ви можете змінити папку кешу 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 \ тощо
Генрі C

3
Роблячи це в Windows 7 за допомогою Cygwin, я повинен був додавати нахил наперед перед кожним нахилом, щоб уникнути знімання косої косої риски.
TJ.

8
Після виконання виконайте npm config listперевірку правильності налаштування
kampsj

У мене виникають проблеми з пошуку команди, яку ви посилаєтесь, в будь-якому місці пов'язаного документа
AaA

39

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


Для всіх, хто використовує docker, ви можете додавати env var під час виконання за допомогою:

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

3
Це ідеально підходить для використання в докер. Thx
velop

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-кеш-каталог, щоб побачити, заповнюється чи ні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.