我们需要自动更新我们的Notice.txt
文件的过程,这是目前非常繁琐的。
我正在阅读有关git hooks的内容,并开始考虑实现一个git hook,它执行以下操作:
package.json
dependencies
和devDependencies
的变化Notice.txt
文件。我不清楚该怎么做。有没有人试图在过去解决这个问题,或者可以分享一个指南或资源来阅读更多关于git hooks的更多信息?
我们做了类似的事情,但我们没有使用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 */
从Git Book您可以完全免费下载Apress出版的Pro Git书籍,详细介绍了git。它有一个描述客户端和服务器端钩子的Git Hooks
部分。它还附带一些例子。退房时可能值得一试,希望能帮助您解决问题。