关于 file-watcher
面向 Claude Code 的技能,可根据文件系统变化构建响应式工作流。它通过钩子注册监视路径,并在文件变更时运行处理程序。
主要功能
- 01通过钩子注册文件监视器
- 02响应文件变更事件
- 03通过 CLAUDE_ENV_FILE 注入环境变量
- 04配置文件名匹配规则
适用场景
- 01响应 .env 变更
- 02跟踪 package.json 依赖更新
- 03响应 tsconfig.json 变更
- 04监控构建输出
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ rohitg00/ pro-workflow --skill file-watcher安装后在 Claude Code 中输入/file-watcher确认已加载。
详细介绍
文件监听器
使用 Claude Code 的 FileChanged 和 CwdChanged hook,创建可对文件系统更改作出响应的响应式工作流。
触发条件
适用于:
- 为配置更改设置自动重新加载
- 监听依赖项更新
- 监控构建输出
- 创建响应式开发工作流
文件监听的工作方式
Claude Code 的 SessionStart 和 CwdChanged hook 支持返回 watchPaths 来注册文件监听器。当前的 cwd-changed.js 脚本专注于环境变量注入;如需添加监听器注册,你的 hook 脚本必须输出以下 JSON 结构:
{
"hookSpecificOutput": {
"hookEventName": "SessionStart",
"watchPaths": [
"/absolute/path/to/.env",
"/absolute/path/to/package.json"
]
}
}
监听的文件发生更改时,会触发 FileChanged hook,并附带:
{
"hook_event_name": "FileChanged",
"file_path": "/path/to/changed/file",
"event": "change"
}
环境变量注入
CwdChanged 和 FileChanged hook 可以写入 CLAUDE_ENV_FILE,将环境变量注入后续的 Bash 命令:
echo "export PROJECT_TYPE=node" >> "$CLAUDE_ENV_FILE"
echo "export TEST_CMD='npm test'" >> "$CLAUDE_ENV_FILE"
常见监听模式
监听 .env 的更改
const envFile = path.join(projectRoot, '.env');
if (fs.existsSync(envFile)) {
output.hookSpecificOutput = {
hookEventName: 'SessionStart',
watchPaths: [envFile]
};
}
监听 package.json 中的依赖项更改
检测依赖项是否发生更改,并提醒运行 npm install。
监听 tsconfig.json 中的配置更改
提醒在配置更改后重新启动 TypeScript 检查。
设置
在 hooks.json 中添加:
{
"FileChanged": [{
"matcher": ".env|package.json|tsconfig.json",
"hooks": [{
"type": "command",
"command": "node scripts/file-changed.js"
}]
}]
}
规则
watchPaths使用绝对路径(Claude Code 要求)- 匹配器使用竖线分隔文件名
- 监听器使用 500ms 稳定性阈值和 200ms 轮询间隔
file-changed处理程序应保持快速(<5s),以避免阻塞- 使用
CLAUDE_ENV_FILE注入环境变量,而不是直接导出
评论
支持 Markdown