diff --git a/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-lock.yaml b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-lock.yaml index 5bb04ac300807e9748851c8940f4c8f484b95137..176b4fd082e0065554eb9856671c754810e50010 100644 --- a/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-lock.yaml +++ b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-lock.yaml @@ -56,6 +56,18 @@ importers: dependencies: dotenv: 9.0.2 + test/test-package: + specifiers: + dotenv: ^9.0.2 + dependencies: + dotenv: 9.0.2 + + tests/test-package2: + specifiers: + dotenv: ^9.0.2 + dependencies: + dotenv: 9.0.2 + packages: /ansi-styles/3.2.1: diff --git a/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-workspace.yaml b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-workspace.yaml index 6298802ab9d90cbb0642b51bc13084a36a3bce9a..fead9b1be6dcf9cfca5e0e0757b8ce135b6aa2ee 100644 --- a/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-workspace.yaml +++ b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-workspace.yaml @@ -6,3 +6,5 @@ packages: - 'solo-package-trailing-slash/' - './solo-package-leading-dot-slash' - '../pnpm-monorepo/solo-package-leading-double-dot-slash' + - 'test/*' + - 'tests/*' diff --git a/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/test/test-package/package.json b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/test/test-package/package.json new file mode 100644 index 0000000000000000000000000000000000000000..9e85715cf5911bde4b5bbcd848af128ea06b7ed3 --- /dev/null +++ b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/test/test-package/package.json @@ -0,0 +1,12 @@ +{ + "name": "@demo/test-package", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "dependencies": { + "dotenv": "^9.0.2" + } +} diff --git a/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/tests/test-package2/package.json b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/tests/test-package2/package.json new file mode 100644 index 0000000000000000000000000000000000000000..9d394f90a4babc02ae7f0ba3bf388dd0aff8e5ea --- /dev/null +++ b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/tests/test-package2/package.json @@ -0,0 +1,12 @@ +{ + "name": "@demo/test-package2", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "dependencies": { + "dotenv": "^9.0.2" + } +} diff --git a/lib/modules/manager/npm/extract/__snapshots__/pnpm.spec.ts.snap b/lib/modules/manager/npm/extract/__snapshots__/pnpm.spec.ts.snap index 39c9a658685e46a438935fa35884155ccf7880ef..fe4966f7307298be42ed28cc7eca876a1b9095f2 100644 --- a/lib/modules/manager/npm/extract/__snapshots__/pnpm.spec.ts.snap +++ b/lib/modules/manager/npm/extract/__snapshots__/pnpm.spec.ts.snap @@ -46,5 +46,15 @@ exports[`modules/manager/npm/extract/pnpm .detectPnpmWorkspaces() uses pnpm work "packageJsonName": "@demo/solo-trailing-slash", "pnpmShrinkwrap": "pnpm-lock.yaml", }, + { + "packageFile": "test/test-package/package.json", + "packageJsonName": "@demo/test-package", + "pnpmShrinkwrap": "pnpm-lock.yaml", + }, + { + "packageFile": "tests/test-package2/package.json", + "packageJsonName": "@demo/test-package2", + "pnpmShrinkwrap": "pnpm-lock.yaml", + }, ] `; diff --git a/lib/modules/manager/npm/extract/pnpm.spec.ts b/lib/modules/manager/npm/extract/pnpm.spec.ts index f391cd7aaaea3822b79a9907efe360064794177b..8e4ca91a0be0420980c732904d4a0a350d68fc02 100644 --- a/lib/modules/manager/npm/extract/pnpm.spec.ts +++ b/lib/modules/manager/npm/extract/pnpm.spec.ts @@ -126,6 +126,16 @@ describe('modules/manager/npm/extract/pnpm', () => { packageJsonName: '@demo/solo-trailing-slash', pnpmShrinkwrap: undefined as undefined | string, }, + { + packageFile: 'test/test-package/package.json', + packageJsonName: '@demo/test-package', + pnpmShrinkwrap: undefined as undefined | string, + }, + { + packageFile: 'tests/test-package2/package.json', + packageJsonName: '@demo/test-package2', + pnpmShrinkwrap: undefined as undefined | string, + }, ]; await detectPnpmWorkspaces(packageFiles); diff --git a/lib/modules/manager/npm/extract/pnpm.ts b/lib/modules/manager/npm/extract/pnpm.ts index 55ede53b6a73faabba571e559e2b10d9c3efa703..b278088137d8118930bb1834877e44e965dca583 100644 --- a/lib/modules/manager/npm/extract/pnpm.ts +++ b/lib/modules/manager/npm/extract/pnpm.ts @@ -105,7 +105,11 @@ export async function detectPnpmWorkspaces( const { localDir } = GlobalConfig.get(); const packages = await findPackages( upath.dirname(upath.join(localDir, workspaceYamlPath)), - { patterns: filters } + { + patterns: filters, + // Match the ignores used in @pnpm/find-workspace-packages + ignore: ['**/node_modules/**', '**/bower_components/**'], + } ); const packagePaths = packages.map((pkg) => upath.join(pkg.dir, 'package.json')