Существуют ли предварительные идентификаторы версии npm?
3 ответов
начиная с npm 6.4.0 можно использовать на npm version
такой:
$ npm version prerelease --preid=alpha
v0.1.1-alpha.0
$ npm version prerelease --preid=alpha
v0.1.1-alpha.1
$ npm version prerelease --preid=alpha
v0.1.1-alpha.2
Я недавно смотрел на это, чтобы узнать, были ли какие-либо обновления по этому вопросу... но, кажется, все по-прежнему.
нет, нет никаких предварительных идентификаторов версии npm, поддерживаемых командой версии npm. Вы можете увидеть рассуждения команды здесь: https://github.com/npm/npm/pull/12936#issuecomment-248153743
semver (https://www.npmjs.com/package/semver) не поддерживаю то, что вы пытаетесь сделать, так что вы можете сделать, это получить версию с помощью команды так же, как это:
semver <current version> -i prerelease --preid <prelease identifier>
например:
semver 1.0.1 -i prerelease --preid alpha
будет:
1.0.2-alpha.0
С этим результатом вы можете передать его в версию npm (например, в сборке CI), например:
npm version <resulting version from semver command>
Другой альтернативой является использование semantic-release (независимый проект): https://github.com/semantic-release/semantic-release
это автоматизирует семантическое управление версиями на основе о сообщениях фиксации, но я думаю, что он работает только с размещенными модулями GitHub repo, не уверен в этом.
как и другой упомянутый ответ, это не поддерживается npm по причине, указанной в этом комментарий
но вы можете достичь того же с помощью semver пакет и сценарии npm
добавление чего-то вроде следующего в package.json
"scripts": {
"beta-version-patch": "npm version $(semver $npm_package_version -i prerelease --preid beta)",
"beta-version-minor": "npm version $(semver $npm_package_version -i preminor --preid beta)",
"beta-version-major": "npm version $(semver $npm_package_version -i premajor --preid beta)",
"rc-version": "npm version $(semver $npm_package_version -i prerelease --preid rc)",
"final-release": "npm version $(semver $npm_package_version -i)"
}
и работать npm run beta-version-patch
чтобы быть более общим, вы можете использовать следующее:
"scripts": {
"semver": "npm version $(semver $npm_package_version -i $release --preid $preid)"
}
и выполнить команды, такие как:
release=prerelease preid=alpha npm run semver
release=prerelease preid=beta npm run semver
release=premajor preid=alpha npm run semver