Версия приложения автоинкремента в пакете nodejs с помощью git push

Я изо всех сил пытаюсь найти способ автоматического увеличения моего package.json моего приложения узла. Я понимаю, что у npm есть скрипт под названием version, который принимает 3 параметра: второстепенный, основной и патч, но мне не удалось использовать npm version minor, например, для увеличения до новой версии.

Я получаю npm ERR! Git working directory not clean каждый раз, когда пытаюсь это сделать.

Итак, я хочу сделать следующее:

  1. У меня есть приложение узла с файлом package.json, и его версия начинается с 0.0.1.
  2. Работая над новой функцией, исправлением ошибки или чем-то еще, я создаю новую ветку и хочу отправить свои изменения в git.
  3. А теперь самое сложное:

На этом этапе перед фиксацией, я думаю, мне придется создать пакет json. Как мне автоматически увеличить значение при нажатии на git? Как я уже сказал, это будет версия 0.0.1 вроде:

{
  "name": "App name",
  "version": "0.0.1",
   ...
}

И с новым коммитом, допустим, это второстепенный выпуск, он должен быть:

{
  "name": "App name",
  "version": "0.0.2",
   ...
}

Кроме того, это приложение не будет опубликовано в репозитории пакетов NPM, поэтому мне не понадобится публикация npm.

npm version предназначен для публикации в npm, как вы уже могли заметить, и поэтому он требует чистого состояния. Внутри они, скорее всего, используют semver. Вероятно, вы могли бы создать ловушку git, чтобы делать то, что вам нужно, но я хотел бы немного лучше понять, зачем вам это нужно. Git уже предоставляет вам уникальный хэш, который можно использовать для получения конкретной версии вашего кода.
Erick Ruiz de Chavez 14.08.2018 18:12

На самом деле я просто хотел, чтобы моя версия npm была sinc с тегом версии github, просто для моего интереса. Мне удалось это сделать только сейчас, и вскоре я опубликую решение. Спасибо за помощь тебе

Victor 14.08.2018 18:19
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
4 891
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Прежде всего спасибо за помощь. Во-вторых, я получил ошибку из-за того, что у меня были незакрепленные файлы в ветке, в которой я находился. Чтобы исправить эту ошибку, я сделал git add и git commit до npm version, и эти шаги позволили мне использовать команду npm version patch и увеличить версию файла package.json до 0.0.2. как я хотел. Как отметил @Erick Ruiz de Chavez в комментариях выше, npm version имеет отступ для публикации пакета в npm, но я использовал его для синхронизации моей версии выпуска Github с версией пакета в package.json с помощью команды git push && git push --tags.

Незначительное дополнение - вы можете просто пропустить теги версии Git следующим образом:

npm version patch -git-tag-version false

Это также будет работать, если у вас есть незафиксированные изменения, и ничего не будет делать, кроме как увеличивать номер версии в вашем package.json.

Другие вопросы по теме