Подтвердить что ты не робот

Npm опубликовать патч для более ранней версии

Я не могу найти информацию о том, как npm работает с ветвями в репозитории.

Предположим, что пакет npm в настоящее время версирован: 1.0.5

Для значительного изменения требуется изменение версии от 1.0.5 = > 2.0.0

Некоторые пользователи продолжают использовать 1.x.x, чтобы не нарушать изменения.

Если ошибка обнаружена в 1.0.5, она должна быть исправлена ​​для пользователей 1.xx, требующих изменения версии от 1.0.5. >= > 1.0.6

По сути, это ветвление. Я бы сделал ветвь git для пользователей 1.x.x и продолжаю использовать главную ветку git для 2.x.x

Но как это соотносится с npm? Должен ли я опубликовать более старую версию npm 1.0.6? В этом случае 1.0.6 не станет последним, а фактически 2.0.0 должен быть по умолчанию при выполнении npm install.

Я не могу найти информацию о филиале для npm. Уверен, что это обычная ситуация, но я просто не могу найти никакой информации. Пожалуйста, может кто-нибудь указать мне в правильном направлении.

4b9b3361

Ответ 1

Вы на правильном пути - вы хотите опубликовать [email protected] без обновления тега latest. Вы можете сделать это, предоставив аргумент --tag <tagname> для npm publish -

cd project
git checkout old-branch
grep version package.json
  "version": "1.0.5",
[make changes]
git commit
npm version patch
grep version package.json
  "version": "1.0.6",
npm publish --tag old-version

Пока вы добавляете аргумент --tag <tagname> в npm publish, тег latest не будет обновляться, а люди, использующие npm install <package> или npm install <package>@latest, все равно получат версию 2.x.

Обратите внимание, что тэг должен использовать пространство имен с номерами версий, поэтому лучше всего выбрать тэг, который не похож на версию semver; избегайте "1.0.6" или "v1.0.6".

Источник: https://docs.npmjs.com/cli/publish и: https://docs.npmjs.com/getting-started/using-tags