#compdef npm # Node Package Manager 0.3.15 completion, letting npm do all the completion work _npm() { compadd -- $(_npm_complete $words) } # We want to show all errors of any substance, but never the "npm (not )ok" one. # (Also doesn't consider "ERR! no match found" worth breaking the terminal for.) _npm_complete() { local ask_npm ask_npm=(npm completion --color false --loglevel error -- $@) { _call_program npm $ask_npm 2>&1 >&3 \ | egrep -v '^(npm (not |)ok|ERR! no match found)$' >&2; \ } 3>&1 } _npm "$@"