我们需要使Notice.txt
文件的更新过程自动化,这目前非常繁琐。
我正在阅读有关git钩子的内容,并开始考虑实现git钩子,该操作可完成以下任务:
package.json
dependencies
和devDependencies
中查找变化Notice.txt
文件。我不清楚该怎么做。过去有没有人尝试解决此问题,或者可以分享指南或资源以在常规文档之外阅读更多有关git hook的信息?
答案 0 :(得分:1)
我们做了类似的事情,但没有使用githooks。我们正在使用每个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)}`);
结果:/ environment下的version.ts
上面的代码将带有以下内容的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 */
答案 1 :(得分:0)
您可以从Git Book完全免费下载Apress出版的Pro Git书,其中详细介绍了git。它有一个Git Hooks
部分,描述了客户端和服务器端挂钩。它还带有一些示例。结帐时可能值得您做些事情,希望对您有帮助。