diff --git a/.changeset/hungry-sheep-approve.md b/.changeset/hungry-sheep-approve.md new file mode 100644 index 0000000000..454de4facd --- /dev/null +++ b/.changeset/hungry-sheep-approve.md @@ -0,0 +1,6 @@ +--- +"@pnpm/hooks.read-package-hook": patch +"pnpm": patch +--- + +Override peerDependencies in `pnpm.overrides` [#6759](https://github.com/pnpm/pnpm/issues/6759). diff --git a/hooks/read-package-hook/src/createVersionsOverrider.ts b/hooks/read-package-hook/src/createVersionsOverrider.ts index 22f732a72a..6e0930ca70 100644 --- a/hooks/read-package-hook/src/createVersionsOverrider.ts +++ b/hooks/read-package-hook/src/createVersionsOverrider.ts @@ -81,6 +81,7 @@ function overrideDepsOfPkg ( if (manifest.dependencies != null) overrideDeps(versionOverrides, genericVersionOverrides, manifest.dependencies, dir) if (manifest.optionalDependencies != null) overrideDeps(versionOverrides, genericVersionOverrides, manifest.optionalDependencies, dir) if (manifest.devDependencies != null) overrideDeps(versionOverrides, genericVersionOverrides, manifest.devDependencies, dir) + if (manifest.peerDependencies != null) overrideDeps(versionOverrides, genericVersionOverrides, manifest.peerDependencies, dir) } function overrideDeps ( diff --git a/hooks/read-package-hook/test/createVersionOverrider.test.ts b/hooks/read-package-hook/test/createVersionOverrider.test.ts index 7e4aa3f588..17592c64eb 100644 --- a/hooks/read-package-hook/test/createVersionOverrider.test.ts +++ b/hooks/read-package-hook/test/createVersionOverrider.test.ts @@ -382,4 +382,25 @@ test('createVersionsOverrider() matches intersections', () => { ).toStrictEqual({ dependencies: { foo: '>=1.2.4' }, }) -}) \ No newline at end of file +}) + +test('createVersionsOverrider() overrides peerDependencies of another dependency', () => { + const overrider = createVersionsOverrider({ + 'react-dom>react': '18.1.0', + }, process.cwd()) + expect( + overrider({ + name: 'react-dom', + version: '18.2.0', + peerDependencies: { + react: '18.2.0', + }, + }) + ).toStrictEqual({ + name: 'react-dom', + version: '18.2.0', + peerDependencies: { + react: '18.1.0', + }, + }) +})