이중 대시(--)가 앞에 붙으면 npm 자동 완성이 깨집니다.

이중 대시(--)가 앞에 붙으면 npm 자동 완성이 깨집니다.

이중 대시 뒤에 추가 인수를 허용하는 명령을 사용할 때 이 사실을 발견했습니다. 예를 들면 다음과 같습니다.

npm test -- spec/blah-spec.js

원시적이고 깨끗한 ZSH v5.3 설치에서는 탭 완성이 제대로 작동합니다.

npm test -- spec/blah<TAB>

그러나 .zshrc에 다음 줄을 추가하자마자:

autoload -U compinit && compinit
zmodload -i zsh/complist

이 경우 탭 완성이 중단됩니다(TAB은 아무 작업도 수행하지 않음).

이 사용 사례를 깨지 않고 완성을 맞춤설정할 수 있는 방법이 있나요?

업데이트: 제안된 대로:

❯ which $_comps[npm]
_npm_completion () {
    local si=$IFS 
    compadd -- $(COMP_CWORD=$((CURRENT-1)) \
                 COMP_LINE=$BUFFER \
                 COMP_POINT=0 \
                 npm completion -- "${words[@]}" \
                 2>/dev/null)
    IFS=$si 
}

관련 정보