为什么 npm 从 GitLab 得到错误的标签

Why is npm getting the wrong tag from GitLab

我有一个在多个 NodeJS 项目中引用的 GitLab 存储库。我正在为此使用标签。

在我的 package.json 共享库中:

{
    "name": "my-shared",
    "version": "4.1.2",
...
}

当我进行更改时,我将其推送到 GitLab 存储库,我可以按预期在那里看到它。 然后 git tag "4.1.2"git push origin "4.1.2"

在引用项目的 package.json 中:

"dependencies": {
        ...
        "my-shared": "git+https://gitlab+deploy-token-25649:my-token@gitlab.com/url/my-shared.git#4.1.2",
        ...
}

然后,显然 npm i 在该项目中。

多年来一直运行良好,但突然停止运行。现在,当我 运行 引用项目中的 npm i 命令时,我得到版本 4.0.32 而不是版本 4.1.2 - 当我深入 /node_modules/my-shared/package.json, 是v4.0.32, 其余代码支持这个。

这发生在我所有的(10 多个)参考项目上。 我在 运行 安装 npm 之前删除了 node_modules 文件夹和 package-lock.json 文件,同样的事情发生了。

my-shared 项目的所有标签都在 GitLab 中按预期显示。

我不知道我可能做了什么来搞砸它或如何解决它。有什么帮助吗?

我遇到了这个问题,发现在我的管道 yaml 文件中,我指示 Bitbucket 为我的节点构建使用缓存。也许您的 Gitlab 管道中有类似的东西。从管道文件中删除缓存后,安装了正确的标签。

将 npm 更新到 v6.14.11 后,该问题似乎已消失