From b11fa7093cd4775f5245d8a0fb6b64cc5262ee06 Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Sat, 4 Mar 2023 19:20:09 +0200 Subject: [PATCH] fix: dedupe-peer-dependents when running a command inside a workspace project (#6175) ref #6171 --- pkg-manager/plugin-commands-installation/package.json | 1 + pkg-manager/plugin-commands-installation/src/installDeps.ts | 5 ++++- pkg-manager/plugin-commands-installation/tsconfig.json | 3 +++ pnpm-lock.yaml | 6 +++++- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/pkg-manager/plugin-commands-installation/package.json b/pkg-manager/plugin-commands-installation/package.json index 6cad612a16..2045d3deb0 100644 --- a/pkg-manager/plugin-commands-installation/package.json +++ b/pkg-manager/plugin-commands-installation/package.json @@ -83,6 +83,7 @@ "@pnpm/sort-packages": "workspace:*", "@pnpm/store-connection-manager": "workspace:*", "@pnpm/types": "workspace:*", + "@pnpm/workspace.pkgs-graph": "workspace:*", "@yarnpkg/core": "4.0.0-rc.27", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.0-rc.27", diff --git a/pkg-manager/plugin-commands-installation/src/installDeps.ts b/pkg-manager/plugin-commands-installation/src/installDeps.ts index 2200d91bfe..77d3047b63 100644 --- a/pkg-manager/plugin-commands-installation/src/installDeps.ts +++ b/pkg-manager/plugin-commands-installation/src/installDeps.ts @@ -18,6 +18,7 @@ import { } from '@pnpm/core' import { logger } from '@pnpm/logger' import { sequenceGraph } from '@pnpm/sort-packages' +import { createPkgGraph } from '@pnpm/workspace.pkgs-graph' import isSubdir from 'is-subdir' import { getOptionsFromRootManifest } from './getOptionsFromRootManifest' import { getPinnedVersion } from './getPinnedVersion' @@ -148,7 +149,9 @@ when running add/update with the --workspace option') let allProjectsGraph!: ProjectsGraph if (opts.dedupePeerDependents) { - allProjectsGraph = opts.allProjectsGraph! + allProjectsGraph = opts.allProjectsGraph ?? createPkgGraph(allProjects, { + linkWorkspacePackages: Boolean(opts.linkWorkspacePackages), + }).graph } else { allProjectsGraph = selectedProjectsGraph if (!allProjectsGraph[opts.workspaceDir]) { diff --git a/pkg-manager/plugin-commands-installation/tsconfig.json b/pkg-manager/plugin-commands-installation/tsconfig.json index 1b66a3c655..2ecc415677 100644 --- a/pkg-manager/plugin-commands-installation/tsconfig.json +++ b/pkg-manager/plugin-commands-installation/tsconfig.json @@ -84,6 +84,9 @@ { "path": "../../workspace/find-workspace-packages" }, + { + "path": "../../workspace/pkgs-graph" + }, { "path": "../../workspace/sort-packages" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 202de14971..5c1bc46df3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3505,6 +3505,9 @@ importers: '@pnpm/types': specifier: workspace:* version: link:../../packages/types + '@pnpm/workspace.pkgs-graph': + specifier: workspace:* + version: link:../../workspace/pkgs-graph '@yarnpkg/core': specifier: 4.0.0-rc.27 version: 4.0.0-rc.27(typanion@3.12.1) @@ -7993,7 +7996,7 @@ packages: '@pnpm/find-workspace-dir': 5.0.1 '@pnpm/find-workspace-packages': 5.0.36(@pnpm/logger@5.0.0)(@yarnpkg/core@4.0.0-rc.14)(typanion@3.12.1) '@pnpm/logger': 5.0.0 - '@pnpm/types': 8.9.0 + '@pnpm/types': 8.10.0 '@yarnpkg/core': 4.0.0-rc.14(typanion@3.12.1) load-json-file: 7.0.1 meow: 10.1.5 @@ -8542,6 +8545,7 @@ packages: /@pnpm/types@8.9.0: resolution: {integrity: sha512-3MYHYm8epnciApn6w5Fzx6sepawmsNU7l6lvIq+ER22/DPSrr83YMhU/EQWnf4lORn2YyiXFj0FJSyJzEtIGmw==} engines: {node: '>=14.6'} + dev: false /@pnpm/util.lex-comparator@1.0.0: resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==}