From 48c203f3567e7b79af562349eecb6720a96de667 Mon Sep 17 00:00:00 2001 From: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com> Date: Sat, 24 Oct 2026 17:24:43 +0800 Subject: [PATCH] fix(build): prepare release dependency types during installation (#6978) --- scripts/prepare.mjs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/scripts/prepare.mjs b/scripts/prepare.mjs index 9cea840b48..d10ec4e8d6 100644 --- a/scripts/prepare.mjs +++ b/scripts/prepare.mjs @@ -4,10 +4,10 @@ import { fileURLToPath } from "node:url"; const root = join(dirname(fileURLToPath(import.meta.url)), ".."); -const sourceHuskyIsAvailable = async () => { +const sourceDependencyIsAvailable = async (path) => { try { await access(join(root, "src")); - await access(join(root, "node_modules", "husky", "index.js")); + await access(join(root, "node_modules", path)); return true; } catch (cause) { if ( @@ -21,7 +21,18 @@ const sourceHuskyIsAvailable = async () => { } }; -if (process.env.HUSKY !== "0" && (await sourceHuskyIsAvailable())) { +// Runtime and type checking must both see the patched release dependency. +// Published installs omit source and development dependencies. +if (await sourceDependencyIsAvailable("release-please/package.json")) { + const { applyReleasePleasePatch } = + await import("./lib/release-proposal.mjs"); + await applyReleasePleasePatch(); +} + +if ( + process.env.HUSKY !== "0" && + (await sourceDependencyIsAvailable("husky/index.js")) +) { const { default: installHusky } = await import("husky"); const message = installHusky(); if (message.length > 0) process.stdout.write(`${message}\n`);