如果我在 Nexus 私有仓库中的包名称与在 npm 发布仓库中的包名称相同,那么在我安装时哪个优先?

If I have the same package name in Nexus private repo as it is in the npm publish repo, which one takes priority when I install?

我正在设置 nexus npm 存储库,并创建了 npm-group = npm-private+npm-registry(npm 官方注册表的代理)。

我想到如果我发布自己的包并将其命名为 "jest" 到我的私人仓库, 如果我执行 npm install jest 会发生什么?是拿私人的假的还是官网上公布的?

谢谢

您需要为您的私有包使用范围。您在它们前面加上@yournamespace(例如:"name": "@yournamespace/jest"),并相应地调整您的 npmrc:

; Set a new registry for a scoped package
@yournamespace:registry=https://mycustomregistry.example.org

使用此方案,您可以使用单独的 npm 存储库,一个用于官方 npmjs 存储库的代理,另一个用于您的私有包。

否则,如果您覆盖了一个包名,它会隐藏被代理的包名,因此您将获取您的私有包而不是官方包。