From c8369483b336e7d9c2c828ca3de8536c9f1d1881 Mon Sep 17 00:00:00 2001 From: wenyongda Date: Wed, 3 Jun 2026 13:29:54 +0800 Subject: [PATCH] =?UTF-8?q?docs(Windows-Server):=20add=20npm/yarn/pnpm?= =?UTF-8?q?=E7=AD=89=E5=8C=85=E7=BC=93=E5=AD=98=E8=BF=81=E7=A7=BB=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充了各包管理器缓存默认目录的查询命令,以及批量检查目录链接的PowerShell脚本,完善包缓存迁移的教程内容 --- source/_posts/Windows-Server.md | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/source/_posts/Windows-Server.md b/source/_posts/Windows-Server.md index c6c0e88..0025976 100644 --- a/source/_posts/Windows-Server.md +++ b/source/_posts/Windows-Server.md @@ -580,6 +580,27 @@ robocopy %USERPROFILE%\.gradle D:\packages\gradle /E ## 使用链接迁移包缓存 +### 获取缓存默认目录 + +```powershell +# npm 缓存目录 +npm config get cache + +# yarn 缓存目录 +yarn cache dir + +# pnpm 缓存目录 +pnpm store path + +# NuGet 全局包目录 +dotnet nuget locals global-packages -l + +# pip 缓存目录 +pip cache dir +``` + +### 使用 Junction/Symlink 迁移 + 除了设置环境变量外,还可以使用 **目录联接 (Junction)** 或 **符号链接 (Symlink)** 将缓存目录迁移到开发驱动器,同时保持原有路径不变。 > **优势:** 无需修改环境变量,对应用程序完全透明,兼容性更好。 @@ -678,6 +699,25 @@ Get-Item "C:\Users\你的用户名\.pnpm-store" | Select-Object FullName, LinkTy # 或使用 dir 命令 cmd /c dir "C:\Users\你的用户名" /AL + +# 查看目录是否为链接(Junction/Symlink) +(Get-Item "C:\Users\你的用户名\.pnpm-store").Attributes -match "ReparsePoint" + +# 批量检查常用缓存目录是否为链接 +@( + "$env:USERPROFILE\.pnpm-store", + "$env:USERPROFILE\AppData\Local\JetBrains", + "$env:USERPROFILE\AppData\Local\npm-cache", + "$env:USERPROFILE\.nuget\packages", + "$env:USERPROFILE\AppData\Local\pip\Cache" +) | ForEach-Object { + $item = Get-Item $_ -ErrorAction SilentlyContinue + [PSCustomObject]@{ + Path = $_ + IsLink = ($item.Attributes -match "ReparsePoint") + Target = $item.Target + } +} ``` ## 限制与注意事项