对于一个使用AWS CDK的项目,我们正在从lna工作空间转向NPM工作空间。到目前为止,一切似乎都很好,除了在项目根目录下运行npm audit
,它似乎没有考虑到工作空间。
我们使用以下文件夹结构:
.
|-package.json
|-package-lock.json
|-ts-config.json
|-lib
|-index.ts
|-lambdas
|-workspace-a
|-index.ts
|-package.json
当向项目根目录package.json
添加带有漏洞的依赖时,npm audit
会像往常一样向我们报告这些漏洞。当在workspace-a package.json
中安装相同的依赖项时,它最终出现在项目的工作空间根package-lock.json
部分,正如预期的那样,但npm audit
没有注意到它,并报告0漏洞。
到目前为止,我已经尝试了几种方式运行npm audit
;通过添加--workspaces=true
,--workspace lib/lambdas/workspace-a
和--package-lock-only
,但似乎都不起作用。
是否有一些东西我没有看到让npm audit
为workspace-a
工作?
在相同和不同机器上对示例项目进行了一些测试后,解决方案似乎在于.npmrc
中的注册表集。当注释掉企业npm存储库时,审计又被捡起来了。
或者,运行npm audit --registry=https://registry.npmjs.org
将工作不改变全局配置。
这似乎只需要对工作区和嵌套依赖项进行审计,因为根包级别上的顶级依赖项将被审计得很好。