From 167ac4d2b5fdd56c2df902e08449ee2d5a53702f Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Wed, 3 Apr 2024 12:28:26 +0200 Subject: [PATCH] fix: use the right pkg manager for building git-hosted deps (#7852) close #7850 --- .changeset/friendly-tips-search.md | 6 ++++++ exec/prepare-package/src/index.ts | 9 ++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 .changeset/friendly-tips-search.md diff --git a/.changeset/friendly-tips-search.md b/.changeset/friendly-tips-search.md new file mode 100644 index 0000000000..188e7dd33d --- /dev/null +++ b/.changeset/friendly-tips-search.md @@ -0,0 +1,6 @@ +--- +"@pnpm/prepare-package": patch +"pnpm": patch +--- + +When building git-hosted dependencies, use the package manager required by the project [#7850](https://github.com/pnpm/pnpm/issues/7850). diff --git a/exec/prepare-package/src/index.ts b/exec/prepare-package/src/index.ts index 102da7cfe7..87544b60c9 100644 --- a/exec/prepare-package/src/index.ts +++ b/exec/prepare-package/src/index.ts @@ -46,8 +46,15 @@ export async function preparePackage (opts: PreparePackageOptions, gitRootDir: s await runLifecycleHook(installScriptName, manifest, execOpts) for (const scriptName of PREPUBLISH_SCRIPTS) { if (manifest.scripts[scriptName] == null || manifest.scripts[scriptName] === '') continue + let newScriptName + if (pm !== 'pnpm') { + newScriptName = `${pm}-run-${scriptName}` + manifest.scripts[newScriptName] = `${pm} run ${scriptName}` + } else { + newScriptName = scriptName + } // eslint-disable-next-line no-await-in-loop - await runLifecycleHook(scriptName, manifest, execOpts) + await runLifecycleHook(newScriptName, manifest, execOpts) } } catch (err: unknown) { assert(util.types.isNativeError(err))