关于 dependency-auditor
面向 JavaScript 项目的依赖审计技能,可检查漏洞、过时或未使用的包以及包体积影响。提供 NPM 命令、审查清单、更新策略和锁文件实践建议。
主要功能
- 01安全漏洞检查
- 02过时软件包检查
- 03未使用依赖检测
- 04包体积分析
- 05更新策略与检查清单
- 06锁文件使用建议
适用场景
- 01审计 NPM 项目的依赖
- 02准备软件包更新与清理
- 03审查 CI 中的依赖管理实践
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ onewave-ai/ claude-skills --skill dependency-auditor安装后在 Claude Code 中输入/dependency-auditor确认已加载。
详细介绍
依赖审计
说明
审计依赖时:
- 运行安全审计
- 检查过时的软件包
- 查找未使用的依赖
- 分析对打包体积的影响
- 审查并更新
安全审计
# NPM audit
npm audit
# Get JSON output for processing
npm audit --json
# Fix automatically (safe fixes only)
npm audit fix
# Force fix (may have breaking changes)
npm audit fix --force
# PNPM
pnpm audit
# Yarn
yarn audit
检查过时的软件包
# NPM
npm outdated
# Interactive update
npx npm-check-updates -i
# Update all to latest
npx npm-check-updates -u
npm install
# Check specific package
npm view <package> versions
查找未使用的依赖
# Using depcheck
npx depcheck
# With details
npx depcheck --detailed
# Ignore patterns
npx depcheck --ignores="@types/*,eslint-*"
常见误报
Depcheck 可能会将以下依赖标记为未使用,但实际上它们是必需的:
@types/*软件包(供 TypeScript 使用)- ESLint/Prettier 插件(在配置中引用)
- PostCSS 插件(在配置中引用)
- Next.js 插件
- Babel 预设
分析打包体积
# For Next.js
npx @next/bundle-analyzer
# General purpose
npx source-map-explorer dist/**/*.js
# Check package size before installing
npx package-phobia <package-name>
# Compare alternatives
npx bundlephobia-cli compare lodash ramda
依赖审查清单
安全性
- 没有严重/高危漏洞
- 依赖处于积极维护状态
- 没有已知的恶意软件包
- 已提交锁定文件
时效性
- 没有落后一个主要版本(除非有意为之)
- 已应用安全补丁
- 已替换弃用的软件包
整洁性
- 没有未使用的依赖
- 没有重复的软件包(检查锁定文件)
- devDependencies 与 dependencies 的分类正确
更新策略
保守策略(推荐)
# Update patch versions only
npm update
# Update specific package
npm install package@latest
激进策略
# Update everything
npx npm-check-updates -u
npm install
npm test
交互式策略
npx npm-check-updates -i
# Options:
# a - update all
# space - toggle selection
# enter - apply selected
清理 Package.json
{
"dependencies": {
// Runtime dependencies only
},
"devDependencies": {
// Build/test tools only
},
"peerDependencies": {
// For libraries only
},
"optionalDependencies": {
// Platform-specific (rare)
}
}
锁定文件最佳实践
- 始终提交锁定文件(package-lock.json、pnpm-lock.yaml、yarn.lock)
- 在 CI/CD 中使用
npm ci(不要使用npm install) - 如果文件损坏,重新生成:删除锁定文件和 node_modules,然后重新安装
- 每个项目只使用一个锁定文件(不要混用包管理器)
自动化监控
# .github/dependabot.yml
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
groups:
dev-dependencies:
dependency-type: "development"
评论
支持 Markdown