如何更新从Git存储库安装的NPM软件包?

时间:2020-03-20 11:57:15

标签: javascript node.js npm

我不知道如何更新从git存储库安装的软件包。

说我在git+ssh://git@gitlab.example.com:project/my-package.git有一个软件包,它已经安装了。

现在,如果我:

  1. 进入my-package master分支;
  2. 运行npm i或npm update;

然后没有任何更新

我认为version字段(来自my-package的相关package.json)可能会引起问题,因此我将其删除并重新安装了该软件包。不幸的是,它没有帮助,该软件包仍未更新。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

好吧,伙计们。令人惊讶的是,开箱即用似乎不太可能。

但是有一种解决方法。感谢@RobC为我指出一些旧问题(尚未解决):https://github.com/npm/npm/issues/1727

答案在最后一条评论中:

https://github.com/npm/npm/issues/1727#issuecomment-354124625

基本上,要更新一个git软件包,您必须直接使用以下内容重新安装npm install package-name

示例。假设您已经安装了软件包并将其添加到如下所示的依赖项中:

{
    "dependencies": {
        "my-package": "git+ssh://git@gitlab.my.com:prj/my-package.git"
    }
}

现在,要在发布npm i时对其进行更新,您要做的就是创建一个postinstall脚本来触发npm i my-package

{
    "dependencies": {
        "my-package": "git+ssh://git@gitlab.my.com:prj/my-package.git"
    },
    "scripts": {
        "postinstall": "npm update && npm i my-package"
    }
}

现在npm i将花费更多时间,因为它将运行两次安装。但这就是我们现在所拥有的。