From af101fd6b0a24189bc49c279f1dbca518184a6af Mon Sep 17 00:00:00 2001 From: Quorafind Date: Thu, 4 Sep 2025 16:52:56 +0800 Subject: [PATCH] fix(release): prevent multiple getLastStableTag calls causing infinite loop - Move getLastStableTag() call outside of module exports - Execute function only once and reuse the result - Fix infinite loop issue during changelog generation --- .release-it.cjs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.release-it.cjs b/.release-it.cjs index a7ceaf0f..b1e2b5de 100644 --- a/.release-it.cjs +++ b/.release-it.cjs @@ -59,6 +59,9 @@ function getLastStableTag() { } } +// 在模块开始时获取一次,避免重复调用 +const lastStableTag = getLastStableTag(); + module.exports = { interactive: true, hooks: { @@ -101,7 +104,7 @@ module.exports = { releaseCount: 1, // 限制 git log 的提交范围,从上一个正式版开始(排除 beta 版本) gitRawCommitsOpts: { - from: getLastStableTag() // 智能获取上一个正式版本 + from: lastStableTag // 使用已经获取的值 }, writerOpts: { // 自定义提交转换,过滤掉 beta 相关的 chore commits @@ -135,7 +138,7 @@ module.exports = { }, // 确保比较链接使用正确的版本范围 finalizeContext: (context) => { - const lastStableTag = getLastStableTag(); + // 使用已经获取的值,避免重复调用 if (lastStableTag) { context.previousTag = lastStableTag; context.currentTag = context.version;