如何在Windows上更改npm(或完全禁用缓存)的缓存路径?

时间:2013-02-12 15:34:51

标签: node.js npm

我在Windows 7 x64开发机器上安装了Node.js,手动方式:

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"

我已将主node x64 binarynpm package manager放在C:\Devel\nodejs中。像魅力一样工作,我可以在不处理安装程序的情况下更新主二进制文件。

我无法解决的唯一问题是移动缓存文件夹。当我安装本地包时:

npm install express

...缓存位于%APP_DATA%\npm-cache文件夹下。我想把它改成:

C:\Devel\nodejs\npm-cache

如何更改npm缓存文件夹,或完全禁用它?

6 个答案:

答案 0 :(得分:126)

您可以使用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 

答案 1 :(得分:23)

您还可以使用export npm_config_cache=/path/to/cache(Unix)或set npm_config_cache=C:\path\to\cache(Win)设置环境变量作为npm config set的替代方法(对于npm中的所有配置选项都是如此)。< / p>

对于使用docker的任何人,您可以在运行时添加env var:

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

答案 2 :(得分:1)

您还可以执行以下操作:

要获得所需的缓存路径,请在安装时为单个软件包安装

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

对于您想要的缓存路径,对于package.json中的所有软件包:

只需像往常一样在package.json所在的目录中

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

您可能在npm文档中找不到此文件,但是我已经使用npm 6进行了尝试,并且可以使用。 自npm 5以来似乎可以使用[参考:How to specify cache folder in npm5 on install command?

答案 3 :(得分:0)

此外,我发现运行更新命令也有效。 例如:&#34; npm update npm&#34;。 没有引号。最后,可以检查他们的npm-cache目录以查看是否正在填充。

答案 4 :(得分:0)

在Windows中,您可以简单地CD到所需的缓存文件夹并执行npm set cache --global

答案 5 :(得分:0)

解决方案

将以下代码粘贴到 npmrc 文件中。

npmrc 文件的位置:C:\Program Files\nodejs\node_modules\npm\npmrc

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

注意事项: 没有“。”在 npmrc 前面

图表

NPMRC 文件夹看起来像这样

enter image description here

NPMRC 内容看起来像这样

enter image description here

希望有帮助。干杯