Крюк для обновления файла на основе package.json - PullRequest
0 голосов
/ 25 февраля 2019

Нам нужно автоматизировать процесс обновления наших Notice.txt файлов, что в настоящее время довольно утомительно.

Я читал о git-хуках и начал думать о реализации git-хука, который делаетследующее:

  1. Ищите изменения в package.json dependencies и devDependencies
  2. Каждый раз, когда в этих разделах есть различия, обновляйте соответствующий файл Notice.txt.

Мне неясно, как это сделать.Кто-нибудь пытался решить эту проблему в прошлом или может поделиться руководством или ресурсом, чтобы узнать больше о перехватах git помимо общей документации?

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Мы сделали что-то похожее, но мы не использовали гитуков.Мы использовали процессы 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 */
0 голосов
/ 28 февраля 2019

Из Git Book вы можете бесплатно загрузить книгу Pro Git, изданную Apress, которая подробно описывает git.В нем есть Git Hooks раздел, описывающий хуки на стороне клиента и сервера.Это также идет с некоторыми примерами.Может быть что-то стоит вашего при проверке и, надеюсь, поможет вам в вашей проблеме.

...