mcpField
D
dependency-auditor

dependency-auditor

github.com/onewave-ai安全398310 次安装1 周前更新
代码仓库

关于 dependency-auditor

面向 JavaScript 项目的依赖审计技能,可检查漏洞、过时或未使用的包以及包体积影响。提供 NPM 命令、审查清单、更新策略和锁文件实践建议。

主要功能

  1. 01安全漏洞检查
  2. 02过时软件包检查
  3. 03未使用依赖检测
  4. 04包体积分析
  5. 05更新策略与检查清单
  6. 06锁文件使用建议

适用场景

  1. 01审计 NPM 项目的依赖
  2. 02准备软件包更新与清理
  3. 03审查 CI 中的依赖管理实践

安装

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

$npx skills add https://github.com/onewave-ai/claude-skills --skill dependency-auditor

安装后在 Claude Code 中输入/dependency-auditor确认已加载。

详细介绍

依赖审计

说明

审计依赖时:

  1. 运行安全审计
  2. 检查过时的软件包
  3. 查找未使用的依赖
  4. 分析对打包体积的影响
  5. 审查并更新

安全审计

# 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)
  }
}

锁定文件最佳实践

  1. 始终提交锁定文件(package-lock.json、pnpm-lock.yaml、yarn.lock)
  2. 在 CI/CD 中使用 npm ci(不要使用 npm install)
  3. 如果文件损坏,重新生成:删除锁定文件和 node_modules,然后重新安装
  4. 每个项目只使用一个锁定文件(不要混用包管理器)

自动化监控

# .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