自动清理redoc缓存的脚本

wen 实用脚本 16

本文目录导读:

自动清理redoc缓存的脚本

  1. Linux / macOS (Bash 脚本)
  2. Windows (PowerShell 脚本)
  3. 通用用法:直接在浏览器中清除
  4. 自动化方案(推荐用于开发环境)
  5. 注意事项

下面是一个自动清理 Redoc 缓存的脚本,支持 Linux / macOSWindows 两种系统。


Linux / macOS (Bash 脚本)

保存为 clear_redoc_cache.sh

#!/bin/bash
echo "🧹 开始清理 Redoc 缓存..."
# Redoc 通常使用浏览器缓存 + Service Worker 缓存
# 清理常见位置:
# 1. 清理浏览器缓存(以 Chrome/Chromium 为例)
if command -v google-chrome &> /dev/null; then
    echo "  → 清理 Chrome 浏览器缓存..."
    rm -rf ~/.cache/google-chrome/Default/Cache/*
    rm -rf ~/.cache/google-chrome/Default/Code\ Cache/*
fi
if command -v chromium-browser &> /dev/null || command -v chromium &> /dev/null; then
    echo "  → 清理 Chromium 浏览器缓存..."
    rm -rf ~/.cache/chromium/Default/Cache/*
    rm -rf ~/.cache/chromium/Default/Code\ Cache/*
fi
# 2. 清理 Redoc 可能缓存的位置(CDN 预缓存、本地存储)
# 常见于 node_modules 或构建输出
CACHE_DIRS=(
    "./node_modules/.cache/redoc"
    "./dist/redoc"
    "./.redoc-cache"
)
for dir in "${CACHE_DIRS[@]}"; do
    if [ -d "$dir" ]; then
        echo "  → 清理目录: $dir"
        rm -rf "$dir"
    fi
done
# 3. 清理 systemd 或 nginx 缓存(Redoc 部署在反向代理后)
if [ -d "/var/cache/nginx" ]; then
    echo "  → 清理 nginx 缓存..."
    sudo rm -rf /var/cache/nginx/*
fi
# 4. 清理 Service Worker 缓存(需在浏览器中执行,脚本无法直接清理)
echo ""
echo "⚠️  注意:Redoc 使用 Service Worker 缓存,请在浏览器中手动清除:"
echo "   打开 DevTools → Application → Cache Storage → 删除 redoc 相关缓存"
echo "   或使用 Clear-Site-Data 头"
echo ""
echo "✅ 清理完成!"

使用方法:

chmod +x clear_redoc_cache.sh
./clear_redoc_cache.sh

Windows (PowerShell 脚本)

保存为 clear_redoc_cache.ps1

Write-Host "🧹 开始清理 Redoc 缓存..." -ForegroundColor Cyan
# 1. 清理浏览器缓存(Chrome)
$chromeCachePath = "$env:LOCALAPPDATA\Google\Chrome\User Data\Default\Cache"
if (Test-Path $chromeCachePath) {
    Write-Host "  → 清理 Chrome 浏览器缓存..."
    Remove-Item -Path "$chromeCachePath\*" -Recurse -Force -ErrorAction SilentlyContinue
}
# 2. 清理 Redoc 常见缓存位置
$cacheDirs = @(
    ".\node_modules\.cache\redoc",
    ".\dist\redoc",
    "\.redoc-cache"
)
foreach ($dir in $cacheDirs) {
    if (Test-Path $dir) {
        Write-Host "  → 清理目录: $dir"
        Remove-Item -Path $dir -Recurse -Force -ErrorAction SilentlyContinue
    }
}
# 3. 清理 IIS / 反向代理缓存(如 ARR)
$iisCachePath = "C:\inetpub\temp\appPools"
if (Test-Path $iisCachePath) {
    Write-Host "  → 尝试清理 IIS 应用程序池缓存..."
    Remove-Item -Path "$iisCachePath\*" -Recurse -Force -ErrorAction SilentlyContinue
}
Write-Host ""
Write-Host "⚠️  注意:Redoc 使用 Service Worker 缓存,请在浏览器中手动清除:" -ForegroundColor Yellow
Write-Host "   打开 DevTools → Application → Cache Storage → 删除 redoc 相关缓存" -ForegroundColor Yellow
Write-Host "   或使用 Clear-Site-Data 头" -ForegroundColor Yellow
Write-Host ""
Write-Host "✅ 清理完成!" -ForegroundColor Green

使用方法:

.\clear_redoc_cache.ps1

如果遇到执行策略限制,先运行:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

通用用法:直接在浏览器中清除

适用范围: 所有系统

  1. 打开 Redoc 页面
  2. F12 打开 DevTools
  3. 选择 Application
  4. 展开 Cache Storage
  5. 右键 → 删除所有缓存,或只删除 redoc 相关的 cache
  6. 刷新页面

自动化方案(推荐用于开发环境)

如果你在开发中频繁更新 Redoc 文档,可以在构建脚本中自动加入清理步骤。

示例(package.json):

{
  "scripts": {
    "clear-cache": "rimraf ./node_modules/.cache/redoc && rimraf ./dist/redoc",
    "redoc-build": "npm run clear-cache && redoc-cli build your-spec.yaml",
    "redoc-serve": "npm run clear-cache && redoc-cli serve your-spec.yaml"
  }
}

使用 rimrafdel-cli 来跨平台删除目录:

npm install --save-dev rimraf

注意事项

场景 说明
Service Worker 只能通过浏览器手动清理或设置 Clear-Site-Data
CDN / 反向代理 需要清除 Nginx / Varnish / Cloudflare 等缓存
浏览器缓存 可强制刷新 Ctrl+F5 或使用脚本清理
构建缓存 不同构建工具(Webpack/Vite)需单独清除对应缓存目录

如果你有特定的 Redoc 部署环境(如 Docker、Nginx、K8s),可以告诉我,我可以给出更精确的清理方案。

抱歉,评论功能暂时关闭!