Skip to content

Commit 82879f6

Browse files
authored
fix: lazy loading of arborist and pacote (#6225)
1 parent f4e73ab commit 82879f6

File tree

25 files changed

+76
-81
lines changed

25 files changed

+76
-81
lines changed

lib/commands/audit.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
const Arborist = require('@npmcli/arborist')
21
const auditReport = require('npm-audit-report')
32
const fetch = require('npm-registry-fetch')
43
const localeCompare = require('@isaacs/string-locale-compare')('en')
@@ -413,6 +412,7 @@ class Audit extends ArboristWorkspaceCmd {
413412

414413
async auditAdvisories (args) {
415414
const reporter = this.npm.config.get('json') ? 'json' : 'detail'
415+
const Arborist = require('@npmcli/arborist')
416416
const opts = {
417417
...this.npm.flatOptions,
418418
audit: true,
@@ -445,6 +445,7 @@ class Audit extends ArboristWorkspaceCmd {
445445
}
446446

447447
log.verbose('loading installed dependencies')
448+
const Arborist = require('@npmcli/arborist')
448449
const opts = {
449450
...this.npm.flatOptions,
450451
path: this.npm.prefix,

lib/commands/cache.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
const cacache = require('cacache')
2-
const Arborist = require('@npmcli/arborist')
32
const pacote = require('pacote')
43
const fs = require('fs/promises')
54
const { join } = require('path')
@@ -162,7 +161,7 @@ class Cache extends BaseCommand {
162161
return pacote.tarball.stream(spec, stream => {
163162
stream.resume()
164163
return stream.promise()
165-
}, { ...this.npm.flatOptions, Arborist })
164+
}, { ...this.npm.flatOptions })
166165
}))
167166
}
168167

lib/commands/ci.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
const Arborist = require('@npmcli/arborist')
21
const reifyFinish = require('../utils/reify-finish.js')
32
const runScript = require('@npmcli/run-script')
43
const fs = require('fs/promises')
@@ -36,6 +35,7 @@ class CI extends ArboristWorkspaceCmd {
3635
}
3736

3837
const where = this.npm.prefix
38+
const Arborist = require('@npmcli/arborist')
3939
const opts = {
4040
...this.npm.flatOptions,
4141
packageLock: true, // npm ci should never skip lock files

lib/commands/dedupe.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// dedupe duplicated packages, or find them in the tree
2-
const Arborist = require('@npmcli/arborist')
32
const reifyFinish = require('../utils/reify-finish.js')
43

54
const ArboristWorkspaceCmd = require('../arborist-cmd.js')
@@ -31,6 +30,7 @@ class Dedupe extends ArboristWorkspaceCmd {
3130

3231
const dryRun = this.npm.config.get('dry-run')
3332
const where = this.npm.prefix
33+
const Arborist = require('@npmcli/arborist')
3434
const opts = {
3535
...this.npm.flatOptions,
3636
path: where,

lib/commands/diff.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ const { resolve } = require('path')
22
const semver = require('semver')
33
const libnpmdiff = require('libnpmdiff')
44
const npa = require('npm-package-arg')
5-
const Arborist = require('@npmcli/arborist')
65
const pacote = require('pacote')
76
const pickManifest = require('npm-pick-manifest')
87
const log = require('../utils/log-shim')
@@ -146,6 +145,7 @@ class Diff extends BaseCommand {
146145
if (spec.registry) {
147146
let actualTree
148147
let node
148+
const Arborist = require('@npmcli/arborist')
149149
try {
150150
const opts = {
151151
...this.npm.flatOptions,
@@ -257,6 +257,7 @@ class Diff extends BaseCommand {
257257

258258
async findVersionsByPackageName (specs) {
259259
let actualTree
260+
const Arborist = require('@npmcli/arborist')
260261
try {
261262
const opts = {
262263
...this.npm.flatOptions,

lib/commands/explain.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
const { explainNode } = require('../utils/explain-dep.js')
2-
const completion = require('../utils/completion/installed-deep.js')
3-
const Arborist = require('@npmcli/arborist')
42
const npa = require('npm-package-arg')
53
const semver = require('semver')
64
const { relative, resolve } = require('path')
@@ -21,6 +19,7 @@ class Explain extends ArboristWorkspaceCmd {
2119
// TODO
2220
/* istanbul ignore next */
2321
async completion (opts) {
22+
const completion = require('../utils/completion/installed-deep.js')
2423
return completion(this.npm, opts)
2524
}
2625

@@ -29,6 +28,7 @@ class Explain extends ArboristWorkspaceCmd {
2928
throw this.usageError()
3029
}
3130

31+
const Arborist = require('@npmcli/arborist')
3232
const arb = new Arborist({ path: this.npm.prefix, ...this.npm.flatOptions })
3333
const tree = await arb.loadActual()
3434

lib/commands/fund.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
const archy = require('archy')
2-
const Arborist = require('@npmcli/arborist')
32
const pacote = require('pacote')
43
const semver = require('semver')
54
const npa = require('npm-package-arg')
65
const { depth } = require('treeverse')
76
const { readTree: getFundingInfo, normalizeFunding, isValidFunding } = require('libnpmfund')
87

9-
const completion = require('../utils/completion/installed-deep.js')
108
const openUrl = require('../utils/open-url.js')
119
const ArboristWorkspaceCmd = require('../arborist-cmd.js')
1210

@@ -39,6 +37,7 @@ class Fund extends ArboristWorkspaceCmd {
3937
// TODO
4038
/* istanbul ignore next */
4139
async completion (opts) {
40+
const completion = require('../utils/completion/installed-deep.js')
4241
return completion(this.npm, opts)
4342
}
4443

@@ -64,6 +63,7 @@ class Fund extends ArboristWorkspaceCmd {
6463
}
6564

6665
const where = this.npm.prefix
66+
const Arborist = require('@npmcli/arborist')
6767
const arb = new Arborist({ ...this.npm.flatOptions, path: where })
6868
const tree = await arb.loadActual()
6969

@@ -80,6 +80,7 @@ class Fund extends ArboristWorkspaceCmd {
8080
// TODO: add !workspacesEnabled option handling to libnpmfund
8181
const fundingInfo = getFundingInfo(tree, {
8282
...this.flatOptions,
83+
Arborist,
8384
workspaces: this.workspaceNames,
8485
})
8586

lib/commands/install.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ const readdir = util.promisify(fs.readdir)
55
const reifyFinish = require('../utils/reify-finish.js')
66
const log = require('../utils/log-shim.js')
77
const { resolve, join } = require('path')
8-
const Arborist = require('@npmcli/arborist')
98
const runScript = require('@npmcli/run-script')
109
const pacote = require('pacote')
1110
const checks = require('npm-install-checks')
@@ -136,6 +135,7 @@ class Install extends ArboristWorkspaceCmd {
136135
throw this.usageError()
137136
}
138137

138+
const Arborist = require('@npmcli/arborist')
139139
const opts = {
140140
...this.npm.flatOptions,
141141
auditLevel: null,

lib/commands/link.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ const util = require('util')
33
const readdir = util.promisify(fs.readdir)
44
const { resolve } = require('path')
55

6-
const Arborist = require('@npmcli/arborist')
76
const npa = require('npm-package-arg')
87
const rpj = require('read-package-json-fast')
98
const semver = require('semver')
@@ -67,8 +66,10 @@ class Link extends ArboristWorkspaceCmd {
6766
// load current packages from the global space,
6867
// and then add symlinks installs locally
6968
const globalTop = resolve(this.npm.globalDir, '..')
69+
const Arborist = require('@npmcli/arborist')
7070
const globalOpts = {
7171
...this.npm.flatOptions,
72+
Arborist,
7273
path: globalTop,
7374
global: true,
7475
prune: false,
@@ -138,8 +139,10 @@ class Link extends ArboristWorkspaceCmd {
138139
const paths = wsp && wsp.length ? wsp : [this.npm.prefix]
139140
const add = paths.map(path => `file:${path.replace(/#/g, '%23')}`)
140141
const globalTop = resolve(this.npm.globalDir, '..')
142+
const Arborist = require('@npmcli/arborist')
141143
const arb = new Arborist({
142144
...this.npm.flatOptions,
145+
Arborist,
143146
path: globalTop,
144147
global: true,
145148
})

lib/commands/ls.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,9 @@ const relativePrefix = `.${sep}`
33
const { EOL } = require('os')
44

55
const archy = require('archy')
6-
const Arborist = require('@npmcli/arborist')
76
const { breadth } = require('treeverse')
87
const npa = require('npm-package-arg')
98

10-
const completion = require('../utils/completion/installed-deep.js')
11-
129
const _depth = Symbol('depth')
1310
const _dedupe = Symbol('dedupe')
1411
const _filteredBy = Symbol('filteredBy')
@@ -44,6 +41,7 @@ class LS extends ArboristWorkspaceCmd {
4441
// TODO
4542
/* istanbul ignore next */
4643
async completion (opts) {
44+
const completion = require('../utils/completion/installed-deep.js')
4745
return completion(this.npm, opts)
4846
}
4947

@@ -63,6 +61,8 @@ class LS extends ArboristWorkspaceCmd {
6361

6462
const path = global ? resolve(this.npm.globalDir, '..') : this.npm.prefix
6563

64+
const Arborist = require('@npmcli/arborist')
65+
6666
const arb = new Arborist({
6767
global,
6868
...this.npm.flatOptions,

0 commit comments

Comments
 (0)