Hooks 配置
让项目「一生成就能用」
Hooks 让你在项目生成前后执行自动化脚本,实现依赖安装、Git 初始化等操作。
Hooks 类型
AgileBuilder 支持两种 hooks:
| Hook | 执行时机 | 用途 |
|------|----------|------|
| pre-generate | 生成文件前 | 验证参数、准备环境 |
| post-generate | 生成文件后 | 安装依赖、初始化 Git |
配置 Hooks
在 agilebuilder.json 中配置:
{
"hooks": {
"pre-generate": "node hooks/pre-generate.js",
"post-generate": "node hooks/post-generate.js"
}
}
内置 Hooks
AgileBuilder 提供了常用的内置 hooks:
安装依赖
{
"hooks": {
"post-generate": "@agilebuilder/install-deps"
}
}
自动检测 package.json 并使用适当的包管理器安装依赖。
初始化 Git
{
"hooks": {
"post-generate": "@agilebuilder/git-init"
}
}
组合多个 Hooks
{
"hooks": {
"post-generate": [
"@agilebuilder/install-deps",
"@agilebuilder/git-init",
"node hooks/custom.js"
]
}
}
自定义 Hooks
创建自定义 hook 脚本:
// hooks/post-generate.js
module.exports = async (context) => {
const { projectPath, variables } = context
console.log(`Project generated at: ${projectPath}`)
console.log(`Variables:`, variables)
// 执行自定义逻辑
if (variables.useTypeScript) {
// TypeScript 特定的初始化
}
}
Context 对象
Hook 函数接收 context 对象:
interface HookContext {
projectPath: string // 生成的项目路径
templatePath: string // 模板路径
variables: Record<string, any> // 用户填写的变量
logger: Logger // 日志工具
}