From 7179cc560b537319747d0ac4d47fe412181794b2 Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Sun, 10 May 2020 16:34:33 +0300 Subject: [PATCH] perf(modules-cleaner): don't use fs-vacuum --- .changeset/breezy-radios-sort.md | 5 +++++ packages/modules-cleaner/package.json | 1 - packages/modules-cleaner/src/prune.ts | 12 +++--------- pnpm-lock.yaml | 14 -------------- 4 files changed, 8 insertions(+), 24 deletions(-) create mode 100644 .changeset/breezy-radios-sort.md diff --git a/.changeset/breezy-radios-sort.md b/.changeset/breezy-radios-sort.md new file mode 100644 index 0000000000..b946a11a62 --- /dev/null +++ b/.changeset/breezy-radios-sort.md @@ -0,0 +1,5 @@ +--- +"@pnpm/modules-cleaner": minor +--- + +Don't try to remove empty branches of a directory tree, when pruning `node_modules`. diff --git a/packages/modules-cleaner/package.json b/packages/modules-cleaner/package.json index c9e5f2b246..427a4724ec 100644 --- a/packages/modules-cleaner/package.json +++ b/packages/modules-cleaner/package.json @@ -39,7 +39,6 @@ "@pnpm/types": "workspace:5.0.0", "@zkochan/rimraf": "1.0.0", "dependency-path": "workspace:4.0.6", - "fs-vacuum": "1.2.10", "is-windows": "1.0.2", "ramda": "0.27.0" }, diff --git a/packages/modules-cleaner/src/prune.ts b/packages/modules-cleaner/src/prune.ts index 1742e6523e..82236e7c6f 100644 --- a/packages/modules-cleaner/src/prune.ts +++ b/packages/modules-cleaner/src/prune.ts @@ -18,15 +18,12 @@ import { DEPENDENCIES_FIELDS, Registries, } from '@pnpm/types' +import rimraf = require('@zkochan/rimraf') import * as dp from 'dependency-path' -import vacuumCB = require('fs-vacuum') import path = require('path') import R = require('ramda') -import { promisify } from 'util' import removeDirectDependency from './removeDirectDependency' -const vacuum = promisify(vacuumCB) - export default async function prune ( importers: Array<{ binsDir: string, @@ -141,13 +138,10 @@ export default async function prune ( } await Promise.all(orphanDepPaths.map(async (orphanDepPath) => { - const pathToRemove = path.join(opts.virtualStoreDir, pkgIdToFilename(orphanDepPath, opts.lockfileDir), 'node_modules') + const pathToRemove = path.join(opts.virtualStoreDir, pkgIdToFilename(orphanDepPath, opts.lockfileDir)) removalLogger.debug(pathToRemove) try { - await vacuum(pathToRemove, { - base: opts.virtualStoreDir, - purge: true, - }) + await rimraf(pathToRemove) } catch (err) { logger.warn({ error: err, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 950a8d17be..f1d73642e4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -998,7 +998,6 @@ importers: '@pnpm/types': 'link:../types' '@zkochan/rimraf': 1.0.0 dependency-path: 'link:../dependency-path' - fs-vacuum: 1.2.10 is-windows: 1.0.2 ramda: 0.27.0 devDependencies: @@ -1023,7 +1022,6 @@ importers: '@types/ramda': ^0.27.4 '@zkochan/rimraf': 1.0.0 dependency-path: 'workspace:4.0.6' - fs-vacuum: 1.2.10 is-windows: 1.0.2 ramda: 0.27.0 packages/modules-yaml: @@ -6755,14 +6753,6 @@ packages: node: '>= 0.10' resolution: integrity: sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= - /fs-vacuum/1.2.10: - dependencies: - graceful-fs: 4.2.4 - path-is-inside: 1.0.2 - rimraf: 2.7.1 - dev: false - resolution: - integrity: sha1-t2Kb7AekAxolSP35n17PHMizHjY= /fs.realpath/1.0.0: resolution: integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= @@ -9805,10 +9795,6 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - /path-is-inside/1.0.2: - dev: false - resolution: - integrity: sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= /path-key/2.0.1: dev: true engines: