是否可以在项目或机器配置中将 NPM 包版本列入黑名单?

Is it possible to blacklist a NPM package version either in the project or on the machine config?

鉴于 news that npm 5.7.0 在生产中存在一些问题,我想知道是否可以在 package.json 或机器级别(可能在 .npmrc.yarnrc.

我期望的行为是可以升级,所以这不是固定的 semver 版本。 SemVer 有意避免定义版本跳过 in the spec 因为,

SemVer is meant to communicate what type of changes have occurred, not 'how much' change has occurred. If a user wants to know the details of how much has changed, they should look at the changelog. A long changelog tells them it's a big update.

但作为用户,我可能事先知道我从不想要这个版本。例如,永远不要使用 5.7.0,但 5.7.1 可以。

如果你的包 A 依赖于 B,而 B 有一个已知的错误版本,你可以定义一个有漏洞的版本范围。请参阅 https://docs.npmjs.com/misc/semver 的最后一段。但是,我不知道有什么方法可以在您的系统上全局 black-list 这样的版本,因此,如果您安装 A 并且它对 B 的依赖性没有版本漏洞,您可能会得到错误的版本,但在您上面提到的示例中,随着有关该缺陷的新闻发布,违规版本已从发布中撤下。

您可以做的一件事是清除所有错误包版本的缓存,以确保它们不能用于解析依赖项。