pecoでnpm-scriptsを超簡単に実行したい - Qiita のような先人がいるけど、この方法だと表示されるのはコマンド名だけで、コマンドの内容も表示したかったので、改良版を作った。 要 jq 。
適当な短いエイリアスでも付けて使ってください。
.bashrc
npm_run_peco() {
local selected=$(
cat "./package.json" \
| jq -r '.scripts | to_entries | map("\(.key)#\(.value)") | .[]' \
| column -t -s# \
| peco \
| perl -pe 's/ +.+$//'
);
if [ -n "$selected" ]; then
yarn run $selected;
fi
}
zsh 利用者でキーバインドで実行したい人は下記も追記。
.zshrc
zle -N npm_run_peco
bindkey '^n' npm_run_peco