diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md index ca8568db78b2b..370eec21d7aba 100644 --- a/DEPENDENCIES.md +++ b/DEPENDENCIES.md @@ -548,7 +548,6 @@ graph LR; npm-->remark-gfm; npm-->remark-github; npm-->remark; - npm-->rimraf; npm-->semver; npm-->spawk; npm-->ssri; diff --git a/lib/commands/cache.js b/lib/commands/cache.js index a2e6434b34cab..637085015fcb7 100644 --- a/lib/commands/cache.js +++ b/lib/commands/cache.js @@ -1,9 +1,8 @@ const cacache = require('cacache') const Arborist = require('@npmcli/arborist') -const { promisify } = require('util') const pacote = require('pacote') +const fs = require('fs/promises') const path = require('path') -const rimraf = promisify(require('rimraf')) const semver = require('semver') const BaseCommand = require('../base-command.js') const npa = require('npm-package-arg') @@ -130,7 +129,7 @@ class Cache extends BaseCommand { If you're sure you want to delete the entire cache, rerun this command with --force.`) } - return rimraf(cachePath) + return fs.rm(cachePath, { recursive: true, force: true }) } for (const key of args) { let entry diff --git a/lib/commands/ci.js b/lib/commands/ci.js index 38ee1426d982a..a2c61044eb96e 100644 --- a/lib/commands/ci.js +++ b/lib/commands/ci.js @@ -1,10 +1,7 @@ -const util = require('util') const Arborist = require('@npmcli/arborist') -const rimraf = util.promisify(require('rimraf')) const reifyFinish = require('../utils/reify-finish.js') const runScript = require('@npmcli/run-script') -const fs = require('fs') -const readdir = util.promisify(fs.readdir) +const fs = require('fs/promises') const log = require('../utils/log-shim.js') const validateLockfile = require('../utils/validate-lockfile.js') @@ -69,8 +66,8 @@ class CI extends ArboristWorkspaceCmd { await this.npm.time('npm-ci:rm', async () => { const path = `${where}/node_modules` // get the list of entries so we can skip the glob for performance - const entries = await readdir(path, null).catch(er => []) - return Promise.all(entries.map(f => rimraf(`${path}/${f}`, { glob: false }))) + const entries = await fs.readdir(path, null).catch(er => []) + return Promise.all(entries.map(f => fs.rm(`${path}/${f}`, { force: true }))) }) await arb.reify(opts) diff --git a/lib/utils/log-file.js b/lib/utils/log-file.js index 2935697ac98eb..b945eedbc96dd 100644 --- a/lib/utils/log-file.js +++ b/lib/utils/log-file.js @@ -1,10 +1,10 @@ const os = require('os') const path = require('path') const { format, promisify } = require('util') -const rimraf = promisify(require('rimraf')) const glob = promisify(require('glob')) const MiniPass = require('minipass') const fsMiniPass = require('fs-minipass') +const fs = require('fs/promises') const log = require('./log-shim') const padZero = (n, length) => n.toString().padStart(length.toString().length, '0') @@ -217,7 +217,7 @@ class LogFiles { for (const file of files.slice(0, toDelete)) { try { - await rimraf(file, { glob: false }) + await fs.rm(file, { force: true }) } catch (e) { log.silly('logfile', 'error removing log file', file, e) } diff --git a/package-lock.json b/package-lock.json index 189b9151f7ddd..2e26ddc3df667 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,7 +66,6 @@ "read", "read-package-json", "read-package-json-fast", - "rimraf", "semver", "ssri", "tar", @@ -143,7 +142,6 @@ "read": "~1.0.7", "read-package-json": "^6.0.0", "read-package-json-fast": "^3.0.1", - "rimraf": "^3.0.2", "semver": "^7.3.8", "ssri": "^10.0.1", "tar": "^6.1.13", diff --git a/package.json b/package.json index d727641a0c155..ea6b3febbf6fa 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,6 @@ "read": "~1.0.7", "read-package-json": "^6.0.0", "read-package-json-fast": "^3.0.1", - "rimraf": "^3.0.2", "semver": "^7.3.8", "ssri": "^10.0.1", "tar": "^6.1.13", @@ -180,7 +179,6 @@ "read", "read-package-json", "read-package-json-fast", - "rimraf", "semver", "ssri", "tar", diff --git a/test/fixtures/sandbox.js b/test/fixtures/sandbox.js index c7bb8218dc60a..460609628c8ab 100644 --- a/test/fixtures/sandbox.js +++ b/test/fixtures/sandbox.js @@ -2,9 +2,7 @@ const { createHook, executionAsyncId } = require('async_hooks') const { EventEmitter } = require('events') const { homedir, tmpdir } = require('os') const { dirname, join } = require('path') -const { promisify } = require('util') -const { mkdir } = require('fs/promises') -const rimraf = promisify(require('rimraf')) +const { mkdir, rm } = require('fs/promises') const mockLogs = require('./mock-logs') const pkg = require('../../package.json') @@ -201,7 +199,7 @@ class Sandbox extends EventEmitter { if (this[_npm]) { this[_npm].unload() } - return rimraf(this[_dirs].temp).catch(() => null) + return rm(this[_dirs].temp, { recursive: true, force: true }).catch(() => null) } // proxy get handler diff --git a/test/lib/utils/log-file.js b/test/lib/utils/log-file.js index 4be5231c1c4fa..bbc2afb64d5d2 100644 --- a/test/lib/utils/log-file.js +++ b/test/lib/utils/log-file.js @@ -4,7 +4,6 @@ const fs = _fs.promises const path = require('path') const os = require('os') const fsMiniPass = require('fs-minipass') -const rimraf = require('rimraf') const LogFile = require('../../../lib/utils/log-file.js') const { cleanCwd, cleanDate } = require('../../fixtures/clean-snapshot') @@ -275,12 +274,14 @@ t.test('rimraf error', async t => { logsMax, testdir: makeOldLogs(oldLogs), mocks: { - rimraf: (...args) => { - if (count >= 3) { - throw new Error('bad rimraf') - } - count++ - return rimraf(...args) + 'fs/promises': { + rm: async (...args) => { + if (count >= 3) { + throw new Error('bad rimraf') + } + count++ + return fs.rm(...args) + }, }, }, })