Мы сделали что-то похожее, но мы не использовали гитуков.Мы использовали процессы pre и post, доступные для каждого скрипта npm.Например, мы использовали скрипт postinstall для генерации константы, доступной во всех компонентах, содержащих версию, настроенную в package.json после каждой установки.Я думаю, что можно просто вызвать такой скрипт в githook.
Чтобы получить постоянную версии, мы сделали следующее:
package.json
"postinstall": "node version.js"
version.js
Этот файл находится на том же уровне, что и package.json
const {version} = require('./package.json');
const {resolve, relative} = require('path');
const {writeFileSync} = require('fs-extra');
const gitInfo = {
version: version
};
const file = resolve(__dirname, 'src', 'environments', 'version.ts');
writeFileSync(file,
`// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
/* tslint:disable */
export const VERSION = ${JSON.stringify(gitInfo, null, 4)};
/* tslint:enable */
`, {encoding: 'utf-8'});
console.log(`Wrote version info ${gitInfo.version} to ${relative(resolve(__dirname, '..'), file)}`);
результат: version.ts в / environment
Приведенный выше код сгенерировал файл version.ts в папку среды со следующим содержимым
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN
/* tslint:disable */
export const VERSION = {
'version': 'VERSION FROM PACKAGE.JSON'
};
/* tslint:enable */