Это можно сделать в три части.
Оказывается, что 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\""
}