feat: scoped pnpm plugin config dependencies (#9824)

close #9780
This commit is contained in:
Zoltan Kochan
2025-08-04 10:57:59 +02:00
committed by GitHub
parent 2b0d35fa8d
commit 3ebc0ce8b3
2 changed files with 13 additions and 1 deletions

View File

@@ -0,0 +1,6 @@
---
"@pnpm/cli-utils": minor
"pnpm": minor
---
Automatically load pnpmfiles from config dependencies that are named "@_/pnpm-plugin-_" [#9780](https://github.com/pnpm/pnpm/issues/9780).

View File

@@ -71,8 +71,14 @@ export async function getConfig (
function * calcPnpmfilePathsOfPluginDeps (configModulesDir: string, configDependencies: Record<string, string>): Generator<string> {
for (const configDepName of Object.keys(configDependencies).sort(lexCompare)) {
if (configDepName.startsWith('@pnpm/plugin-') || configDepName.startsWith('pnpm-plugin-')) {
if (isPluginName(configDepName)) {
yield path.join(configModulesDir, configDepName, 'pnpmfile.cjs')
}
}
}
function isPluginName (configDepName: string): boolean {
if (configDepName.startsWith('pnpm-plugin-')) return true
if (!configDepName.startsWith('@')) return false
return configDepName.startsWith('@pnpm/plugin-') || configDepName.includes('/pnpm-plugin-')
}