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


103

我已经在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"

我将主节点x64二进制文件npm软件包管理器一起放在中C:\Devel\nodejs。像超级按钮一样工作,我可以在不处理安装程序的情况下更新主二进制文件。

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

npm install express

...缓存位于%APP_DATA%\npm-cache文件夹下。我想将其更改为:

C:\Devel\nodejs\npm-cache

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


1
位置不应该是:%APPDATA%\ npm-cache
arni

Answers:


158

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

3
在使用Cygwin的Windows 7上执行此操作时,我必须在每个反斜杠前面添加一个正斜杠,以避免删除反斜杠。
TJ。

8
执行后,请执行一次npm config list以验证设置正确
kampsj 2015年

我在链接文档中的任何地方都找不到您要引用的命令
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
这是在docker中使用的完美选择。Thx
velop's

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以来,它似乎一直有效[参考:如何在install命令上的npm5中指定缓存文件夹?


0

此外,我发现运行更新命令也可以-例如:

npm update npm

最后,可以检查其npm-cache目录以查看是否已填充。


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.