在 Yarn 2 (berry) 中审计依赖项的最佳方法是啥?

Posted

技术标签:

【中文标题】在 Yarn 2 (berry) 中审计依赖项的最佳方法是啥?【英文标题】:Best way to audit dependencies in Yarn 2 (berry)?在 Yarn 2 (berry) 中审计依赖项的最佳方法是什么? 【发布时间】:2020-12-01 09:20:58 【问题描述】:

我正在寻找一种方法来审核 Yarn 2 中漏洞的依赖关系。在 Yarn 1.x 中,通过运行 yarn audit 而不是 npm audit,可能与 npm 中的情况相同。但是 Yarn 2 没有这样的命令。而且根据 berry github 上的this issue,它不会被实现(项目维护者更喜欢通过插件来完成)。

我尝试过运行npm install --package-lock-only && npm audit,但我的一些本地包(我使用link: url 类型在package.json 中列出)上的安装阻塞。

它不会是一个复杂的插件,我很乐意这样做,但它不会像安装一些东西然后继续我的一天那么有趣。我环顾四周,但总是以相同的几个vapourware /放弃软件回购结束。

但我仍然猜想我只是没有找到它们。或者有一个未记录的技巧可以使它变得容易。因此我的问题:)

PS,是的,当我运行上面的 npm installnpm audit 命令时,我可以暂时使用 link: 删除本地包,但这并不是我想尝试为 CI 自动化的那种事情。

【问题讨论】:

【参考方案1】:

我会尝试 https://snyk.io/ 对于大型团队商业用途不是免费的,但它可以让你开始日常运行等。

(我与 Snyk.io 没有任何关联)

【讨论】:

它看起来不错,但哇,一旦你达到 10 个开发者,它就会变得昂贵。【参考方案2】:

更新(2020 年 10 月 28 日): Yarn 2 刚刚合并了期待已久的yarn npm audit 增强功能。

公关 - https://github.com/yarnpkg/berry/pull/1892 文档 - https://yarnpkg.com/cli/npm/audit


我最近在试验 Yarn 2,我看到你可以使用 @efrem/auditdeps 实用程序来做到这一点:

yarn dlx @efrem/auditdeps [--level=(low|moderate|high|critical)] [--production]

输出不如 npm audit 的漂亮,但您可以获得 JSON 格式的更多详细信息,您可以将其通过管道传输到其他工具或任何自定义重新格式化脚本以获得您想要的结果。

【讨论】:

谢谢,我已经尝试过使用它,但它是我提到的其中一个有点虚无缥缈:) 没有问题,一颗星,一位贡献者。使用它时我收到错误:预期为“@”、[^/@] 或输入结束但找到“/”(第 1 行,第 18 列)。 感谢您的更新!对不起,我直到现在才看到这个:)

以上是关于在 Yarn 2 (berry) 中审计依赖项的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 yarn 2 (berry) 设置工作区存储库

使用 yarn berry 时将 .yarn 目录提交到 git

$ yarn install 导致找不到模块 yarn-berry.js

npm审计有纱线替代品吗?

如何解决 Yarn.lock 中开发依赖项的特定依赖项

为啥 Mocha 不与 Yarn Berry 合作?