Перед тем, как сделать небольшой выпуск и отметить его, я бы хотел обновить файл package.json, чтобы он отражал новую версию программы.
Есть ли способ редактировать файл package.json
автоматически?
Будет ли использовать git pre-release hook
помощь?
Ответы:
npm version
наверное правильный ответ. Просто чтобы дать альтернативу, я рекомендую grunt-bump . Он поддерживается одним из парней из angular.js.Использование:
Если вы все равно используете grunt, это может быть самым простым решением.
источник
npm version
?npm --no-git-tag-version version patch
.Правильный ответ
Для этого просто
npm version patch
=)Мой старый ответ
Там нет
pre-release
крючка изначальноgit
. По крайней мере,man githooks
не показывает это.Например, если вы используете
git-extra
( https://github.com/visionmedia/git-extras ), вы можете использовать реализованный имpre-release
хук, как вы можете видеть на https://github.com/visionmedia/ git-extras / blob / master / bin / git-release . Нужен только.git/hook/pre-release.sh
исполняемый файл, который редактирует вашpackage.json
файл. Фиксация, нажатие и пометка будут выполненыgit release
командой.Если вы не используете какое-либо расширение для
git
, вы можете написать сценарий оболочки (я назову егоgit-release.sh
), а затем вы можете присвоить ему псевдоним что-git release
то вроде:git config --global alias.release '!sh path/to/pre-release.sh $1'
Вы можете, чем, использовать
git release 0.4
который будет выполнятьpath/to/pre-release.sh 0.4
. Ваш скрипт может редактироватьpackage.json
, создавать тег и отправлять его на сервер.источник
git release
не обновляет package.json соответственно ... github.com/visionmedia/git-extras/issues/150 : D.git/hooks/pre-release.sh
содержащий:echo -e "{\n\"version\": "$1"\n}" > package.json
и попробуйте использоватьgit release $version
npm version patch
илиnpm version 0.3.1
решит это! Не могли бы вы обновить свой ответ соответственно? ти !!Это то, что я обычно делаю со своими проектами:
Первая строка,
npm version patch
увеличит версию патча на 1 (xx1 до xx2) вpackage.json
. Затем вы добавляете все файлы, включая те,package.json
которые на данный момент были изменены. Затем обычныйgit commit
иgit push
, наконец,npm publish
опубликовать модуль.Я надеюсь это имеет смысл...
Merc.
источник
npm version patch
делает ли коммит сам; Тем не менее, чтобы подтолкнуть тег на GitHub, я думаю, что вам также нужноgit push --tags
.npm version patch
номер версии и сразу же вносит измененияnpm version patch
не совершает ничего для меня.npm version
.Чтобы дать более современный подход.
package.json
Затем вы запускаете это:
Который будет:
... запустить тесты ...
измените свою
package.json
версию на следующую минорную (например, с 1.8.1 до 1.9.0)подтолкнуть ваши изменения
создать новый выпуск тегов git и
опубликуйте свой пакет npm.
--force
это показать, кто в доме хозяин! Шутки в сторону см. Https://github.com/npm/npm/issues/8620источник
"deploy-minor": "npm version minor --force -m \"version %s\""
так что все, что вам нужно запомнить, этоnpm run deploy-minor
:)В дополнение к этому
npm version
вы можете использовать--no-git-tag-version
флаг, если вы хотите повысить версию, но не добавить тег или новый коммит:https://docs.npmjs.com/cli/version
источник
Если вы используете пряжу, вы можете использовать
Это увеличит
package.json
версию патчем(0.0.x)
, зафиксирует и пометит его в форматеv0.0.0
Точно так же вы можете поднять минорную или мажорную версию с помощью
--minor
или--major
При нажатии на git убедитесь, что вы также нажимаете на теги
--follow-tags
Вы также можете создать скрипт для него
Просто запустите его, набрав
yarn release-it
источник
Я использую лайки и git-branch-is :
По состоянию на хаски v1 +:
До хаски V1:
Узнайте больше о версии npm
Webpack или Vue.js
Если вы используете webpack или Vue.js, вы можете отобразить это в пользовательском интерфейсе, используя версию Auto inject - плагин Webpack
NUXT
В
nuxt.config.js
:Внутри вашего,
template
например, в нижнем колонтитуле:источник
postmerge
, но теперь онpost-merge
внутриhusky: {hooks:{}}
конфигурации. С какой проблемой вы столкнулисьgit-branch-is
?Я хочу внести ясность в ответы на этот вопрос.
Даже при том, что есть некоторые ответы, которые правильно решают проблему и предлагают решение, они не являются правильными. Правильный ответ на этот вопрос заключается в использовании
npm version
Да, то, что вы можете сделать, чтобы это произошло, - это запустить
npm version
команду при необходимости, вы можете прочитать больше об этом здесь, версия npm , но базовое использование будет,npm version patch
и это добавит 3-й порядок цифр в вашейpackage.json
версии (1.0. X )Вы можете настроить запуск
npm version
команды на предварительном хуке, как вам нужно, но это зависит от того, что вам нужно или нет в вашем канале CD / CI, но безnpm version
командыgit pre-release
хук не может ничего сделать «легко» сpackage.json
Причина
npm version
правильного ответа заключается в следующем:package.json
он использует,npm
если он использует,npm
он имеет доступ кnpm scripts
.npm scripts
он имеет доступ кnpm version
команде.Другие ответы, в которых предлагаются другие инструменты, неверны.
gulp-bump
работает, но требует другого дополнительного пакета, который может создать проблемы в долгосрочной перспективе (пункт 3 моего ответа)grunt-bump
работает, но требует другого дополнительного пакета, который может создать проблемы в долгосрочной перспективе (пункт 3 моего ответа)источник
Во-первых, вам необходимо понять правила обновления номера версии. Вы можете прочитать больше о семантической версии здесь.
Каждая версия будет иметь версию XYZ, где она определяется для различных целей, как показано ниже.
Чтобы запустить сценарии, вы можете определить это в вашем package.json.
В вашем терминале вам просто нужно запустить npm в соответствии с вашими потребностями, такими как
Если запустить его в git repo, по умолчанию используется git-tag-версия true, и если вы не хотите этого делать, вы можете добавить в свои сценарии следующую команду:
например:
"npm --no-git-tag-version version major && ng build --prod"
источник
Я создал инструмент, который может выполнять автоматическое семантическое управление версиями на основе тегов в сообщениях фиксации, известный как типы изменений. Это близко следует Соглашению об Angular Commit Message вместе со Спецификацией Семантического Версионирования.
Вы можете использовать этот инструмент для автоматического изменения версии в package.json с помощью CLI npm (это описано здесь ).
Кроме того, он может создать журнал изменений из этих коммитов, а также имеет меню (с проверкой орфографии для сообщений коммитов) для создания коммитов на основе типа изменений. Я настоятельно рекомендую проверить это и прочитать документы, чтобы увидеть все, что может быть достигнуто с этим.
Я написал инструмент, потому что не смог найти ничего, что соответствовало бы моим потребностям в CICD Pipeline для автоматизации семантического управления версиями. Я бы предпочел сосредоточиться на реальных изменениях, а не на том, какой должна быть версия, и именно там мой инструмент экономит день.
Для получения дополнительной информации об обосновании инструмента, пожалуйста, смотрите это .
источник