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

gre*_*emo 90 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"
Run Code Online (Sandbox Code Playgroud)

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

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

npm install express
Run Code Online (Sandbox Code Playgroud)

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

C:\Devel\nodejs\npm-cache

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

jcr*_*nou 147

您可以使用npm命令行更改npm cache文件夹.(参见:https://docs.npmjs.com/misc/config,更具体地说,请访问https://docs.npmjs.com/misc/config#cache)

所以你可能想尝试这个命令:

> npm config set cache C:\Devel\nodejs\npm-cache --global 
Run Code Online (Sandbox Code Playgroud)

  • 执行完`npm config list'后验证设置是否正确 (8认同)
  • 另请注意,如果你要沿着npmrc路线走,那么全局的npmrc文件并不直接位于$ PREFIX,而是位于$ PREFIX\etc中 (3认同)
  • 在使用Cygwin在Windows 7上执行此操作时,我必须在每个反斜杠前面添加正斜杠以避免反斜杠被删除. (3认同)
  • 运行此命令后运行“npm --global cache verify” (2认同)

gib*_*gib 30

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


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

export npm_config_cache=/path/to/cache

  • @fudo 使用持久缓存作为 docker 的卷挂载通常很有用。如果我在 docker 中重复运行“npm install”,我可以从我的主机挂载一个缓存目录,这样我每次运行时都不会丢失缓存。 (3认同)
  • 这是在docker中使用的完美选择。谢谢 (2认同)

Luk*_*sac 7

您还可以执行以下操作:

对于您希望的缓存路径,在安装单个包时:

npm install packageName --cache path/to/some/folder
Run Code Online (Sandbox Code Playgroud)

对于 package.json 中的所有包,根据需要拥有缓存路径:

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

npm install --cache path/to/some/folder
Run Code Online (Sandbox Code Playgroud)

你可能在 npm 文档中找不到这个,但我已经用 npm 6 尝试过它并且它有效。看起来它从 npm 5 开始工作 [参考:如何在安装命令的 npm5 中指定缓存文件夹?


小智 5

在 Windows 中,您只需 cd 到所需的缓存文件夹并执行npm set cache --global