Я изо всех сил пытаюсь найти способ автоматического увеличения моего package.json моего приложения узла. Я понимаю, что у npm есть скрипт под названием version, который принимает 3 параметра: второстепенный, основной и патч, но мне не удалось использовать npm version minor, например, для увеличения до новой версии.
Я получаю npm ERR! Git working directory not clean каждый раз, когда пытаюсь это сделать.
Итак, я хочу сделать следующее:
На этом этапе перед фиксацией, я думаю, мне придется создать пакет json. Как мне автоматически увеличить значение при нажатии на git? Как я уже сказал, это будет версия 0.0.1 вроде:
{
"name": "App name",
"version": "0.0.1",
...
}
И с новым коммитом, допустим, это второстепенный выпуск, он должен быть:
{
"name": "App name",
"version": "0.0.2",
...
}
Кроме того, это приложение не будет опубликовано в репозитории пакетов NPM, поэтому мне не понадобится публикация npm.
На самом деле я просто хотел, чтобы моя версия npm была sinc с тегом версии github, просто для моего интереса. Мне удалось это сделать только сейчас, и вскоре я опубликую решение. Спасибо за помощь тебе





Прежде всего спасибо за помощь.
Во-вторых, я получил ошибку из-за того, что у меня были незакрепленные файлы в ветке, в которой я находился. Чтобы исправить эту ошибку, я сделал 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.
npm versionпредназначен для публикации в npm, как вы уже могли заметить, и поэтому он требует чистого состояния. Внутри они, скорее всего, используютsemver. Вероятно, вы могли бы создать ловушку git, чтобы делать то, что вам нужно, но я хотел бы немного лучше понять, зачем вам это нужно. Git уже предоставляет вам уникальный хэш, который можно использовать для получения конкретной версии вашего кода.