mcpField
L
ln-821-npm-upgrader

ln-821-npm-upgrader

github.com/levnikolaevich开发584221 次安装2 天前更新
代码仓库

关于 ln-821-npm-upgrader

此工作器 Skill 使用 npm、yarn 或 pnpm 升级 Node.js 依赖,并检查重大变更及迁移方案。它会验证构建和相关检查,并记录升级结果与警告。

主要功能

  1. 01支持 npm、yarn 和 pnpm
  2. 02执行安全审计并查找过期包
  3. 03检查重大变更和迁移指南
  4. 04应用升级及迁移
  5. 05验证构建、测试和类型

适用场景

  1. 01升级 Node.js 项目中的依赖
  2. 02执行主版本迁移并检查构建结果

MCP 相关

在进行非简单改动前,使用 Context7 或 Ref 等 MCP 工具查找当前文档和迁移指南。此项目未说明自己是 MCP 服务。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-821-npm-upgrader

安装后在 Claude Code 中输入/ln-821-npm-upgrader确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
breaking_changes_patterns.md
coordinator_summary_contract.md
npm_peer_resolution.md

详细介绍

路径: 文件路径(references/、../ln-*)均相对于此技能目录。

ln-821-npm-upgrader

类型: L3 Worker 类别: 8XX 优化

使用 npm、yarn 或 pnpm 升级 Node.js 依赖,并自动检测破坏性变更和执行迁移。


概述

方面详情
输入项目路径、包管理器类型、升级策略
输出更新后的包清单,以及机器可读的依赖升级摘要
支持npm、yarn(classic 和 berry)、pnpm

工作流

阶段: 预检 -> 分析 -> 安全审计 -> 检查过时依赖 -> 识别破坏性变更 -> 应用升级 -> 应用迁移 -> 验证构建 -> 报告


阶段 0:预检

检查项必需缺失时的操作
package.json是阻止升级
锁文件(package-lock.json、yarn.lock、pnpm-lock.yaml)否发出警告,并在最终验证前重新生成
包管理器可用是阻止升级
工作区基线安全是在托管运行中,协调器已做好准备;在独立运行中,在本地保护回滚
运行时协调

托管运行会从 ln-820 接收确定性的 runId 和准确的 summaryArtifactPath。 仍支持独立运行;如果省略运行时参数,则在返回前生成一个独立运行专用的产物。


阶段 1:分析依赖

读取 package.json,并按升级优先级对依赖进行分类。

类别示例优先级
peertypescript、@types/*1
框架react、vue、next2
构建vite、webpack、esbuild3
UI@radix-ui/*、tailwindcss4
状态@tanstack/react-query、zustand5
工具lodash、date-fns6
开发eslint、prettier、测试工具7

阶段 2:安全审计

管理器命令
npmnpm audit --audit-level=high
yarnyarn audit --level high
pnpmpnpm audit --audit-level high

操作:

严重程度操作
严重阻止并报告
高发出警告并继续
中/低仅记录

阶段 3:检查过时依赖

管理器命令
npmnpm outdated --json
yarnyarn outdated --json
pnpmpnpm outdated --json

阶段 4:识别破坏性变更

必须阅读: 加载 breaking_changes_patterns.md 以查看完整模式。

检测流程:

  1. 比较当前版本与最新主版本。
  2. 检查共享的破坏性变更模式。
  3. 修改代码前,通过 Context7 或 Ref 查询迁移指南。

常见破坏性变更示例:

包破坏性版本主要变更
react18 -> 19JSX 转换、refs 作为 props
vite5 -> 6仅支持 ESM、更新的 Node 基线
eslint8 -> 9扁平配置
tailwindcss3 -> 4CSS 优先配置
typescript5.4 -> 5.5+更严格的类型推断

阶段 5:应用升级

升级顺序:

  1. peer 依赖
  2. 框架包
  3. 构建工具
  4. UI 库
  5. 工具库
  6. 开发依赖
管理器命令
npmnpm install <package>@latest --save
yarnyarn add <package>@latest
pnpmpnpm add <package>@latest

peer 依赖冲突:

情况解决方案
ERESOLVEnpm install --legacy-peer-deps
仍然失败仅在最后手段下使用 npm install --force

用于迁移搜索的 MCP 工具

优先级工具使用时机
1mcp__context7__query-docs查阅库文档的首选工具
2mcp__Ref__ref_search_documentation查阅官方文档和 GitHub
3WebSearch获取最新信息和社区修复方案

进行非简单的更改前,先使用 MCP 工具查找迁移指南。


阶段 6:应用迁移

  1. 使用 MCP 工具查找当前迁移指南。
  2. 仅在迁移指南支持时应用自动化代码转换。
  3. 记录手动后续步骤,以便纳入最终报告。

未核对当前文档前,不要硬编码迁移。


阶段 7:验证构建

检查项命令
TypeScriptnpm run check 或 npx tsc --noEmit
构建npm run build
测试如可用,运行 npm test

失败时:

  1. 找出失败的软件包。
  2. 在 Context7 或 Ref 中搜索解决方案。
  3. 如果仍未解决,回滚该软件包,并继续处理其余候选项。

阶段 8:报告结果

字段描述
project项目路径
packageManagernpm、yarn 或 pnpm
duration总耗时
upgrades.major[]已应用的破坏性更改
upgrades.minor[]功能更新
upgrades.patch[]错误修复
migrations[]已应用的迁移
skipped[]已是最新版本或因策略跳过
verification构建/测试/类型检查结果
warnings[]非阻塞问题
artifact_path持久化 Worker 报告路径(如已写入)

配置

Options:
  upgradeType: major          # major | minor | patch
  allowBreaking: true
  autoMigrate: true
  queryMigrationGuides: true
  auditLevel: high
  minimumReleaseAge: 14
  legacyPeerDeps: false
  force: false
  runBuild: true
  runTests: false
  runTypeCheck: true
  rollbackOnFailure: true

错误处理

错误原因解决方案
ERESOLVE对等依赖冲突使用 legacy peer dependency 模式重试
ENOENT缺少锁文件先重新生成依赖
构建失败破坏性更改应用迁移指南或回滚问题软件包
类型错误版本不匹配更新类型定义或框架对等软件包

回滚: 恢复 package.json 和锁文件,然后执行干净安装以恢复先前状态。


参考资料


运行时摘要工件

必须阅读: 加载 references/coordinator_summary_contract.md

输出一个 dependency-worker 摘要封装。

托管模式:

  • ln-820 传入确定性的 runId 和精确的 summaryArtifactPath
  • 将摘要写入提供的 summaryArtifactPath

独立模式:

  • 省略 runId 和 summaryArtifactPath
  • 写入 .hex-skills/runtime-artifacts/runs/{run_id}/dependency-worker/ln-821--{identifier}.json

Monitor(2.1.98+): 对于预计耗时超过 30 秒的安装/审计/构建/测试命令,请使用 Monitor。后备方案:Bash(run_in_background=true)。

完成定义

  • 已分析软件包清单并确定依赖优先级
  • 已针对所选包管理器完成安全审计
  • 已识别过期软件包
  • 已通过模式和当前文档检查破坏性更改
  • 已应用升级,并在失败时回滚
  • 升级后构建和相关验证命令均通过
  • 已将 dependency-worker 摘要工件写入托管或独立路径

版本: 1.1.0 最后更新: 2026-01-10

评论

支持 Markdown