prune.js 770 B

123456789101112131415161718192021222324252627282930313233
  1. const reifyFinish = require('../utils/reify-finish.js')
  2. const ArboristWorkspaceCmd = require('../arborist-cmd.js')
  3. class Prune extends ArboristWorkspaceCmd {
  4. static description = 'Remove extraneous packages'
  5. static name = 'prune'
  6. static params = [
  7. 'omit',
  8. 'include',
  9. 'dry-run',
  10. 'json',
  11. 'foreground-scripts',
  12. 'ignore-scripts',
  13. ...super.params,
  14. ]
  15. static usage = ['[[<@scope>/]<pkg>...]']
  16. async exec () {
  17. const where = this.npm.prefix
  18. const Arborist = require('@npmcli/arborist')
  19. const opts = {
  20. ...this.npm.flatOptions,
  21. path: where,
  22. workspaces: this.workspaceNames,
  23. }
  24. const arb = new Arborist(opts)
  25. await arb.prune(opts)
  26. await reifyFinish(this.npm, arb)
  27. }
  28. }
  29. module.exports = Prune