Интерфейс командной строки npm для вставки номера версии в файл - PullRequest
0 голосов
/ 08 сентября 2018

Можно ли использовать CLI со сценарием npm для добавления моей версии package.json в какой-нибудь произвольный файл?Я не хочу использовать gulp, grunt или webpack и т. Д.

1 Ответ

0 голосов
/ 09 сентября 2018

Это можно сделать в три части.

Оказывается, что NPM помещает версию пакета в переменную среды с именем npm_package_version при запуске scripts .

Существует пакет NPM под названием replace-in-file, который предоставляет CLI для замены строк.

К сожалению, формат для замены переменных среды в Windows (например, %FOO_BAR%) отличается от формата в Linux (например, $FOO_BAR). К счастью, есть еще один пакет NPM под названием cross-var, который обеспечивает согласованность переменных среды на разных платформах.

Соедините их, и вы можете заменить, например, x.x.x-SNAPSHOT с текущей версией пакета во всех .example файлах в каталоге dist с использованием следующего сценария в package.json:

scripts: {
  "build:insert-version": "cross-var replace-in-file \"x.x.x-SNAPSHOT\" \"$npm_package_version\" \"dist/*.example\""
}
...