npm version "Скрипты имеют доступ к новой версии в package.json" - PullRequest
0 голосов
/ 17 мая 2019

Документ для npm version находится на https://docs.npmjs.com/cli/version.

Это говорит (мой акцент):

  1. Запустите скрипт версии. Эти сценарии имеют доступ к новой версии в package.json (поэтому они могут включать ее, например, в заголовки файлов в сгенерированных файлах) . Опять же, сценарии должны явно добавлять сгенерированные файлы в коммит, используя git add.

Как вы получаете эту версию из package.json. С комбинацией команд оболочки grep, tr, .. или в переменной? Я пробовал %s, который используется для git tag и $npm.version и $npm_package_version, но ни один не работал.

Я закончил тем, что использовал это, что хорошо работает:

 "script": {
 ....
 "postversion": "version=$(git-semver-tags | head -1); echo \"export const config = { version: '$version' }\" > client/src/app/config-from-npm.ts",
 ....
 }

РЕДАКТИРОВАТЬ обратите внимание, что я изменил вышеприведенное с 'version' на 'postversion', поскольку новый git tag недоступен до окончания версии, и я изменил на git-semver-tags, так как git tags перечисляет их лексически (поэтому 0.0.1 предшествует 0.0.20).

Мое решение показывает, что мне пришлось использовать git-semver-tags. Вопрос в том, существует ли правильный способ получить версию из package.json, как утверждает документ?

Я чувствую, что документ должен быть обновлен. Я думал, что создам проблему против проекта https://github.com/npm/cli, но нет ссылки на проблемы (по крайней мере, для меня). Это новый репозиторий git после недавнего перехода из другого проекта, так что, возможно, кто-то забыл поставить галочку в этом поле!


(Правка) У меня есть отдельный вопрос о том, как писать файлы .json / .js / .ts из NPM. Как вывести JSON в NPM Script (теперь решено).

...