是否可以在项目或机器配置中将 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 的依赖性没有版本漏洞,您可能会得到错误的版本,但在您上面提到的示例中,随着有关该缺陷的新闻发布,违规版本已从发布中撤下。
您可以做的一件事是清除所有错误包版本的缓存,以确保它们不能用于解析依赖项。
鉴于 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 的依赖性没有版本漏洞,您可能会得到错误的版本,但在您上面提到的示例中,随着有关该缺陷的新闻发布,违规版本已从发布中撤下。
您可以做的一件事是清除所有错误包版本的缓存,以确保它们不能用于解析依赖项。