You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NPM workspaces中使用npm audit检测依赖漏洞?

解决NPM Workspaces下根目录npm audit无法检测工作区依赖漏洞的问题

问题背景

项目基于AWS CDK,从Lerna迁移至NPM Workspaces后,根目录执行npm audit无法检测到子工作区(如lib/lambdas/workspace-a)的依赖漏洞:根目录添加有漏洞的依赖时能正常报告,但子工作区添加相同依赖后,虽已同步到根package-lock.json,却始终显示0漏洞。尝试过--workspaces=true、--workspace lib/lambdas/workspace-a、--package-lock-only等参数均无效。

可行解决方案

1. 升级到支持Workspaces Audit的NPM版本

早期NPM版本(<8.3.0)对Workspaces的audit命令支持不完善,需升级到最新稳定版:

npm install -g npm@latest

2. 验证根目录Workspaces配置正确性

检查根package.json的workspaces字段是否正确包含目标子工作区路径,示例配置:

{
  "workspaces": [
    "lib/lambdas/workspace-a"
  ]
}

3. 执行正确的Audit命令

  • 扫描所有工作区(含根目录):直接使用--workspaces参数(无需加=true)
npm audit --workspaces
  • 仅扫描指定子工作区:明确指定工作区路径
npm audit --workspace lib/lambdas/workspace-a
  • 强制在每个工作区单独执行Audit:若上述命令仍无效,可通过npm exec遍历所有工作区执行审计
npm exec --workspaces -- npm audit

4. 确保依赖与Lock文件同步

执行根目录安装命令,确保子工作区的依赖完全同步到根package-lock.json:

npm install

补充说明

部分场景下,若子工作区使用了npm ci而非npm install,可能导致Lock文件未正确更新,需先执行npm install刷新依赖状态后再运行审计。

内容的提问来源于stack exchange,提问作者TimeWasterNL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 23:10:25