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. Уверен, что это обычная ситуация, но я просто не могу найти никакой информации. Пожалуйста, может кто-нибудь указать мне в правильном направлении.
Ответы
Ответ 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