diff --git a/.changeset/rotten-moose-search.md b/.changeset/rotten-moose-search.md new file mode 100644 index 00000000000..5bc652f9bf0 --- /dev/null +++ b/.changeset/rotten-moose-search.md @@ -0,0 +1,5 @@ +--- +"@pnpm/plugin-commands-installation": patch +--- + +fix dir path repeated join in link global diff --git a/packages/plugin-commands-installation/src/link.ts b/packages/plugin-commands-installation/src/link.ts index 8972ccca7a5..a105288c2a4 100644 --- a/packages/plugin-commands-installation/src/link.ts +++ b/packages/plugin-commands-installation/src/link.ts @@ -116,7 +116,7 @@ export async function handler ( const { manifest, writeProjectManifest } = await tryReadProjectManifest(opts.dir, opts) const newManifest = await addDependenciesToPackage( manifest ?? {}, - [`link:${opts.cliOptions?.dir ? path.join(cwd, opts.cliOptions.dir) : cwd}`], + [`link:${opts.cliOptions?.dir ? path.resolve(opts.cliOptions.dir) : cwd}`], linkOpts ) await writeProjectManifest(newManifest) diff --git a/packages/plugin-commands-installation/test/link.ts b/packages/plugin-commands-installation/test/link.ts index fe6c62eb8dd..08fecf2b7f8 100644 --- a/packages/plugin-commands-installation/test/link.ts +++ b/packages/plugin-commands-installation/test/link.ts @@ -88,7 +88,7 @@ test('link --dir global bin', async function () { await link.handler({ ...DEFAULT_OPTS, cliOptions: { - dir: './dir/package-with-bin-in-dir', + dir: path.resolve('./dir/package-with-bin-in-dir'), }, bin: globalBin, dir: globalDir,