When I list my npm packages with npm ls -g
(or without the -g
option for a local node_modules
directory) I see all installed packages and their dependencies. Like so:
$ npm ls -g
βββ¬ anvil.js@0.9.0-RC3.1
β βββ colors@0.6.0
β βββ¬ commander@1.1.1
β β βββ keypress@0.1.0
β βββ¬ express@3.0.5
β β βββ buffer-crc32@0.1.1
β β βββ commander@0.6.1
β β βββ¬ connect@2.7.1
β β β βββ bytes@0.1.0
β β β βββ crc@0.2.0
β β β βββ formidable@1.0.11
β β β βββ pause@0.0.1
β β β βββ qs@0.5.1
β β βββ cookie@0.0.5
β β βββ cookie-signature@0.0.1
β β βββ debug@0.7.0
β β βββ fresh@0.1.0
β β βββ methods@0.0.1
β β βββ range-parser@0.0.4
β β βββ¬ send@0.1.0
β β βββ mime@1.2.6
β βββ¬ fs-watch-tree@0.2.2
β β βββ when@1.3.0
β βββ¬ handlebars@1.0.7
β β βββ¬ optimist@0.3.5
β β β βββ wordwrap@0.0.2
β β βββ uglify-js@1.2.6
β βββ machina@0.2.2
β βββ¬ minimatch@0.2.9
β β βββ lru-cache@2.0.4
β β βββ sigmund@1.0.0
β βββ mkdirp@0.3.3
β βββ open@0.0.2
β βββ postal@0.7.3
β βββ should@0.6.3
β βββ¬ socket.io@0.9.13
β β βββ base64id@0.1.0
β β βββ policyfile@0.0.4
β β βββ redis@0.7.3
β β βββ¬ socket.io-client@0.9.11
β β βββ¬ active-x-obfuscator@0.0.1
β β β βββ zeparser@0.0.5
β β βββ uglify-js@1.2.5
β β βββ¬ ws@0.4.25
β β β βββ commander@0.6.1
β β β βββ options@0.0.3
β β β βββ tinycolor@0.0.1
β β βββ xmlhttprequest@1.4.2
β βββ underscore@1.4.3
βββ¬ grunt@0.3.17
β βββ async@0.1.22
β βββ colors@0.6.0-1
β βββ¬ connect@2.4.6
β β βββ bytes@0.1.0
β β βββ cookie@0.0.4
β β βββ crc@0.2.0
β β βββ debug@0.7.0
β β βββ formidable@1.0.11
β β βββ fresh@0.1.0
β β βββ pause@0.0.1
β β βββ qs@0.5.1
β β βββ¬ send@0.0.4
β β βββ mime@1.2.6
β β βββ range-parser@0.0.4
β βββ dateformat@1.0.2-1.2.3
β βββ¬ glob-whatev@0.1.8
β β βββ¬ minimatch@0.2.9
β β βββ lru-cache@2.0.4
β β βββ sigmund@1.0.0
β βββ¬ gzip-js@0.3.1
β β βββ crc32@0.2.2
β β βββ deflate-js@0.2.2
β βββ hooker@0.2.3
β βββ¬ jshint@0.9.1
β β βββ¬ cli@0.4.3
β β β βββ¬ glob@3.1.14
β β β βββ graceful-fs@1.1.14
β β β βββ inherits@1.0.0
β β β βββ¬ minimatch@0.2.9
β β β βββ lru-cache@2.0.4
β β β βββ sigmund@1.0.0
β β βββ¬ minimatch@0.0.5
β β βββ lru-cache@1.0.6
β βββ¬ nodeunit@0.7.4
β β βββ¬ tap@0.3.2
β β βββ buffer-equal@0.0.0
β β βββ deep-equal@0.0.0
β β βββ¬ difflet@0.2.3
β β β βββ charm@0.0.8
β β β βββ traverse@0.6.3
β β βββ inherits@1.0.0
β β βββ mkdirp@0.3.4
β β βββ¬ nopt@2.0.0
β β β βββ abbrev@1.0.3
β β βββ¬ runforcover@0.0.2
β β β βββ¬ bunker@0.1.2
β β β βββ¬ burrito@0.2.12
β β β βββ traverse@0.5.2
β β β βββ uglify-js@1.1.1
β β βββ slide@1.1.3
β β βββ yamlish@0.0.5
β βββ¬ nopt@1.0.10
β β βββ abbrev@1.0.3
β βββ¬ prompt@0.1.12
β β βββ pkginfo@0.2.3
β β βββ¬ winston@0.5.11
β β βββ eyes@0.1.8
β β βββ¬ loggly@0.3.11
β β β βββ request@2.9.203
β β β βββ timespan@2.2.0
β β βββ stack-trace@0.0.6
β βββ semver@1.0.14
β βββ¬ temporary@0.0.5
β β βββ package@1.0.1
β βββ uglify-js@1.3.4
β βββ underscore@1.2.4
β βββ underscore.string@2.1.1
βββ¬ jake@0.5.8
β βββ¬ minimatch@0.2.9
β β βββ lru-cache@2.0.4
β β βββ sigmund@1.0.0
β βββ utilities@0.0.19
βββ¬ jitsu@0.11.4
β βββ colors@0.6.0-1
β βββ complete@0.3.1
β βββ dateformat@1.0.2-1.2.3
β βββ¬ flatiron@0.3.0
β β βββ¬ broadway@0.2.5
β β β βββ¬ cliff@0.1.8
β β β β βββ eyes@0.1.8
β β β βββ eventemitter2@0.4.9
β β β βββ¬ nconf@0.6.4
β β β β βββ async@0.1.22
β β β β βββ ini@1.0.5
β β β βββ¬ utile@0.1.2
β β β β βββ async@0.1.22
β β β β βββ deep-equal@0.0.0
β β β β βββ i@0.3.1
β β β β βββ mkdirp@0.3.4
β β β β βββ ncp@0.2.6
β β β β βββ rimraf@1.0.9
β β β βββ¬ winston@0.6.2
β β β βββ async@0.1.22
β β β βββ cycle@1.0.1
β β β βββ eyes@0.1.8
β β β βββ stack-trace@0.0.6
β β βββ director@1.1.6
β β βββ¬ optimist@0.3.4
β β β βββ wordwrap@0.0.2
β β βββ¬ prompt@0.2.8
β β βββ¬ read@1.0.4
β β β βββ mute-stream@0.0.3
β β βββ revalidator@0.1.5
β β βββ¬ utile@0.1.6
β β β βββ async@0.1.22
β β β βββ deep-equal@0.0.0
β β β βββ i@0.3.1
β β β βββ mkdirp@0.3.4
β β β βββ ncp@0.2.6
β β β βββ rimraf@1.0.9
β β βββ¬ winston@0.6.2
β β βββ async@0.1.22
β β βββ cycle@1.0.1
β β βββ eyes@0.1.8
β β βββ stack-trace@0.0.6
β βββ flatiron-cli-config@0.1.3
β βββ flatiron-cli-users@0.1.1
β βββ¬ fstream@0.1.18
β β βββ graceful-fs@1.1.14
β β βββ inherits@1.0.0
β β βββ mkdirp@0.3.4
β β βββ rimraf@2.1.1
β βββ¬ fstream-npm@0.1.1
β β βββ¬ fstream-ignore@0.0.5
β β β βββ¬ minimatch@0.2.9
β β β βββ lru-cache@2.0.4
β β β βββ sigmund@1.0.0
β β βββ inherits@1.0.0
β βββ ladder@0.0.0
β βββ nodejitsu-api@0.3.6
β βββ¬ npm@1.1.59
β β βββ abbrev@1.0.3
β β βββ ansi@0.1.2
β β βββ archy@0.0.2
β β βββ block-stream@0.0.6
β β βββ chownr@0.0.1
β β βββ couch-login@0.1.10
β β βββ fstream@0.1.18
β β βββ¬ fstream-npm@0.1.1
β β β βββ fstream-ignore@0.0.5
β β βββ glob@3.1.12
β β βββ graceful-fs@1.1.10
β β βββ inherits@1.0.0
β β βββ ini@1.0.4
β β βββ¬ init-package-json@0.0.5
β β β βββ promzard@0.2.0
β β βββ lockfile@0.2.1
β β βββ lru-cache@2.0.1
β β βββ minimatch@0.2.6
β β βββ mkdirp@0.3.4
β β βββ node-gyp@0.6.7
β β βββ nopt@2.0.0
β β βββ npm-registry-client@0.2.6
β β βββ¬ npmconf@0.0.11
β β β βββ¬ config-chain@1.1.1
β β β βββ proto-list@1.2.2
β β βββ npmlog@0.0.2
β β βββ once@1.1.1
β β βββ osenv@0.0.3
β β βββ¬ read@1.0.4
β β β βββ mute-stream@0.0.3
β β βββ read-installed@0.0.2
β β βββ read-package-json@0.1.4
β β βββ request@2.9.203
β β βββ retry@0.6.0
β β βββ rimraf@2.0.2
β β βββ semver@1.0.14
β β βββ slide@1.1.3
β β βββ tar@0.1.13
β β βββ uid-number@0.0.3
β β βββ which@1.0.5
β βββ opener@1.3.0
β βββ pkginfo@0.2.3
β βββ progress@0.1.0
β βββ request@2.9.203
β βββ¬ require-analyzer@0.4.0-3
β β βββ¬ detective@0.0.4
β β β βββ¬ burrito@0.2.12
β β β βββ traverse@0.5.2
β β β βββ uglify-js@1.1.1
β β βββ eyes@0.1.8
β β βββ¬ findit@0.0.5
β β β βββ¬ seq@0.3.5
β β β βββ¬ chainsaw@0.0.9
β β β β βββ traverse@0.3.9
β β β βββ¬ hashish@0.0.4
β β β βββ traverse@0.6.3
β β βββ¬ npm@1.1.4
β β β βββ abbrev@1.0.3
β β β βββ block-stream@0.0.5
β β β βββ fast-list@1.0.2
β β β βββ fstream@0.1.12
β β β βββ graceful-fs@1.1.5
β β β βββ inherits@1.0.0
β β β βββ ini@1.0.2
β β β βββ lru-cache@1.0.5
β β β βββ minimatch@0.1.5
β β β βββ mkdirp@0.3.0
β β β βββ node-uuid@1.3.3
β β β βββ nopt@1.0.10
β β β βββ proto-list@1.0.0
β β β βββ read@0.0.1
β β β βββ request@2.9.153
β β β βββ rimraf@2.0.1
β β β βββ semver@1.0.13
β β β βββ slide@1.1.3
β β β βββ tar@0.1.12
β β β βββ which@1.0.5
β β βββ¬ optimist@0.2.8
β β β βββ wordwrap@0.0.2
β β βββ¬ winston@0.5.11
β β βββ async@0.1.22
β β βββ¬ loggly@0.3.11
β β β βββ timespan@2.2.0
β β βββ stack-trace@0.0.6
β βββ semver@1.0.14
β βββ spawn-command@0.0.2
β βββ¬ tar@0.1.13
β β βββ block-stream@0.0.6
β β βββ inherits@1.0.0
β βββ¬ wizard@0.0.1
β βββ¬ prompt@0.2.9
β βββ¬ read@1.0.4
β β βββ mute-stream@0.0.3
β βββ revalidator@0.1.5
β βββ¬ utile@0.1.6
β β βββ async@0.1.22
β β βββ deep-equal@0.0.0
β β βββ i@0.3.1
β β βββ mkdirp@0.3.4
β β βββ ncp@0.2.6
β β βββ rimraf@1.0.9
β βββ¬ winston@0.6.2
β βββ async@0.1.22
β βββ cycle@1.0.1
β βββ eyes@0.1.8
β βββ stack-trace@0.0.6
βββ¬ jshint@0.9.1
β βββ¬ cli@0.4.3
β β βββ¬ glob@3.1.14
β β βββ graceful-fs@1.1.14
β β βββ inherits@1.0.0
β β βββ¬ minimatch@0.2.9
β β βββ lru-cache@2.0.4
β β βββ sigmund@1.0.0
β βββ¬ minimatch@0.0.5
β βββ lru-cache@1.0.6
βββ¬ npm@1.1.65
β βββ abbrev@1.0.3
β βββ ansi@0.1.2
β βββ archy@0.0.2
β βββ block-stream@0.0.6
β βββ chownr@0.0.1
β βββ fstream@0.1.19
β βββ¬ fstream-npm@0.1.3
β β βββ fstream-ignore@0.0.5
β βββ glob@3.1.14
β βββ graceful-fs@1.1.14
β βββ inherits@1.0.0
β βββ ini@1.0.5
β βββ¬ init-package-json@0.0.6
β β βββ promzard@0.2.0
β βββ lockfile@0.2.1
β βββ lru-cache@2.0.4
β βββ minimatch@0.2.8
β βββ mkdirp@0.3.4
β βββ node-gyp@0.7.1
β βββ nopt@2.0.0
β βββ¬ npm-registry-client@0.2.10
β β βββ couch-login@0.1.15
β βββ¬ npmconf@0.0.16
β β βββ¬ config-chain@1.1.2
β β βββ proto-list@1.2.2
β βββ npmlog@0.0.2
β βββ once@1.1.1
β βββ opener@1.3.0
β βββ osenv@0.0.3
β βββ¬ read@1.0.4
β β βββ mute-stream@0.0.3
β βββ read-installed@0.0.3
β βββ read-package-json@0.1.8
β βββ request@2.9.203
β βββ retry@0.6.0
β βββ rimraf@2.0.2
β βββ semver@1.1.0
β βββ slide@1.1.3
β βββ tar@0.1.13
β βββ uid-number@0.0.3
β βββ which@1.0.5
βββ¬ phantomjs@0.2.2
β βββ¬ rimraf@2.0.2
β β βββ graceful-fs@1.1.14
β βββ¬ unzip@0.0.4
β βββ¬ binary@0.3.0
β β βββ buffers@0.1.1
β β βββ¬ chainsaw@0.1.0
β β βββ traverse@0.3.9
β βββ¬ fstream@0.1.19
β β βββ graceful-fs@1.1.14
β β βββ inherits@1.0.0
β β βββ mkdirp@0.3.4
β βββ¬ pullstream@0.0.4
β βββ over@0.0.5
β βββ stream-buffers@0.2.3
βββ¬ stylus@0.30.1
βββ cssom@0.2.5
βββ debug@0.7.0
βββ mkdirp@0.3.4
Ugly, yes? I am typically not interested in the dependencies, only top-level packages. I searched the npm man page for a way to filter this ungainly output but alas, I was denied. Or too dumb to see what was right in front of me. In either case, I was left with my problem.
I added the following snippet to my ~/.bash_profile
file:
function npmls() {
npm ls "$@" | grep ^[ββ]
}
To make the change effective, I sourced the file:
$ source ~/.bash_profile
Now, when I execute the npmls
function (to which I can pass standard npm arguments), it will filter the output to show only top-level packages.
$ npmls -g
βββ¬ anvil.js@0.9.0-RC3.1
βββ¬ grunt@0.3.17
βββ¬ jake@0.5.8
βββ¬ jitsu@0.11.4
βββ¬ jshint@0.9.1
βββ¬ npm@1.1.65
βββ¬ phantomjs@0.2.2
βββ¬ stylus@0.30.1
Ah, much better. I can put the eye bleach back under the sink now.
Anyone else having issues with the depth flag recently? I feel like with one of the latest updates, 'depth' doesn't do anything...