diff --git a/.changeset/great-mayflies-call.md b/.changeset/great-mayflies-call.md new file mode 100644 index 0000000000..ea3a4654f6 --- /dev/null +++ b/.changeset/great-mayflies-call.md @@ -0,0 +1,5 @@ +--- +"@pnpm/package-store": minor +--- + +Don't try to create the dependency directory twice. diff --git a/packages/package-store/src/fs/importIndexedDir.ts b/packages/package-store/src/fs/importIndexedDir.ts index 1e40d57b57..f8e17b6629 100644 --- a/packages/package-store/src/fs/importIndexedDir.ts +++ b/packages/package-store/src/fs/importIndexedDir.ts @@ -44,14 +44,14 @@ async function tryImportIndexedDir (importFile: ImportFile, newDir: string, file const alldirs = new Set() Object.keys(filenames) .forEach((f) => { - const dir = path.join(newDir, path.dirname(f)) + const dir = path.dirname(f) if (dir === '.') return alldirs.add(dir) }) await Promise.all( Array.from(alldirs) - .sort((d1, d2) => d1.length - d2.length) - .map((dir) => fs.mkdir(dir, { recursive: true })) + .sort((d1, d2) => d1.length - d2.length) // from shortest to longest + .map((dir) => fs.mkdir(path.join(newDir, dir), { recursive: true })) ) await Promise.all( Object.entries(filenames)