diff --git a/modules/node/init.zsh b/modules/node/init.zsh index b70f277..dc97f40 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -5,15 +5,18 @@ # Sorin Ionescu # +if (( ! $+commands[npm] )); then + return 1 +fi + cache_file="${0:h}/cache.zsh" -if [[ ! -s "$cache_file" ]]; then - if (( $+commands[npm] )); then - # npm is slow; cache its output. - npm completion >! "$cache_file" 2> /dev/null - source "$cache_file" - fi -else - source "$cache_file" + +if [[ "$commands[npm]" -nt "$cache_file" || ! -s "$cache_file" ]]; then + # npm is slow; cache its output. + npm completion >! "$cache_file" 2> /dev/null fi + +source "$cache_file" + unset cache_file