Как обновить пакет NPM, установленный из репозитория Git? - PullRequest
0 голосов
/ 20 марта 2020

Я не могу понять, как обновить пакет, установленный из репозитория git.

Скажем, у меня есть пакет на git+ssh://git@gitlab.example.com:project/my-package.git, и он уже установлен.

Теперь, если я:

  1. pu sh в основную ветку my-package;
  2. запустить npm i или npm update;

затем ничего не обновляется .

Я думал, что поле version (из зависимого package.json моего пакета) может поднять проблему, поэтому я удалил он и заново установил пакет с нуля. К сожалению, это не помогло, пакет все еще не обновляется.

Есть идеи?

1 Ответ

1 голос
/ 20 марта 2020

Хорошо, ребята. Удивительно, но кажется невозможным заставить его работать «из коробки».

Но есть обходной путь. Спасибо @ Rob C за указание на какую-то старую (пока не решенную) проблему: https://github.com/npm/npm/issues/1727

Ответ в последнем комментарии:

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

По существу, для обновления a 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 будет занимать больше времени, так как он запустит установку дважды. Но это то, что мы имеем сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...