Тема
PluginProjectHooksDefinition
Хуки жизненного цикла проекта.
Свойства
| Наименование | Тип | Обязательное |
|---|---|---|
| beforeConfigRead | Function | Нет |
| afterConfigRead | Function | Нет |
| afterConfigMacrosApply | Function | Нет |
| afterConfigParse | Function | Нет |
| beforeStart | Function | Нет |
Описание свойств
beforeConfigRead
Тип: (path: string) => Promise<void>
Обязательное: Нет
Вызывается перед чтением файла конфигурации проекта.
Параметры:
path— путь к файлу конфигурации
Пример:
typescript
{
beforeConfigRead: async path => {
console.log("Reading config from:", path)
}
}afterConfigRead
Тип: (content: string) => Promise<string>
Обязательное: Нет
Вызывается после чтения содержимого файла конфигурации. Может модифицировать содержимое.
Параметры:
content— исходное содержимое файла конфигурации
Возвращает: модифицированное содержимое файла конфигурации
Пример:
typescript
{
afterConfigRead: async content => {
console.log("Config content read")
// Модификация содержимого
return content.replace(/old/g, "new")
}
}afterConfigMacrosApply
Тип: (content: string) => Promise<string>
Обязательное: Нет
Вызывается после применения макросов к конфигурации. Может модифицировать содержимое.
Параметры:
content— содержимое конфигурации с примененными макросами
Возвращает: модифицированное содержимое конфигурации
Пример:
typescript
{
afterConfigMacrosApply: async content => {
console.log("Macros applied to config")
// Дополнительная обработка
return content
}
}afterConfigParse
Тип: <T extends ProjectConfig>(config: T) => Promise<T>
Обязательное: Нет
Вызывается после парсинга конфигурации. Может модифицировать объект конфигурации.
Параметры:
config— распарсенный объект конфигурации
Возвращает: модифицированный объект конфигурации
Пример:
typescript
{
afterConfigParse: async config => {
console.log("Config parsed")
// Модификация конфигурации
config.customField = "value"
return config
}
}beforeStart
Тип: (params: { project: Project; path: string; name: string | null }) => Promise<void>
Обязательное: Нет
Вызывается перед запуском проекта.
Параметры:
project— экземпляр проектаpath— путь к проектуname— имя проекта (может бытьnull)
Пример:
typescript
{
beforeStart: async ({ project, path, name }) => {
console.log("Starting project:", name || "unnamed")
console.log("Project path:", path)
// Подготовка перед запуском
}
}