Node.js 使用yargs完成命令行设置

Node.js 使用yargs完成命令行设置,node.js,command-line-arguments,yargs,Node.js,Command Line Arguments,Yargs,我正在使用node JS创建一个脚本,并希望使用启用异步命令行完成 上面说:“将生成的脚本连接到.bashrc或.bash_配置文件” 但是我没有看到关于如何生成脚本的任何信息。不完全清楚如何生成脚本,但我已经找到了答案 装码 npm install -g yargs 创建脚本(例如script.js) 保存脚本并设置权限 chmod +x script.js 在命令行上,将命令名(完成调用中的第一个参数)作为第一个参数传递给脚本 ./script.js completion 这将输出要添

我正在使用node JS创建一个脚本,并希望使用启用异步命令行完成

上面说:“将生成的脚本连接到.bashrc或.bash_配置文件”

但是我没有看到关于如何生成脚本的任何信息。

不完全清楚如何生成脚本,但我已经找到了答案

装码

npm install -g yargs
创建脚本(例如script.js)

保存脚本并设置权限

chmod +x script.js
在命令行上,将命令名(完成调用中的第一个参数)作为第一个参数传递给脚本

./script.js completion
这将输出要添加到.bashrc或.bash\u配置文件的命令行完成块


如果有人需要更多信息,此处还有其他文档:
./script.js completion
_yargs_completions()
{
    local cur_word args type_list

    cur_word="${COMP_WORDS[COMP_CWORD]}"
    args=$(printf "%s " "${COMP_WORDS[@]}")

    # ask yargs to generate completions.
    type_list=`./shan.js --get-yargs-completions $args`

    COMPREPLY=( $(compgen -W "${type_list}" -- ${cur_word}) )

    # if no match was found, fall back to filename completion
    if [ ${#COMPREPLY[@]} -eq 0 ]; then
      COMPREPLY=( $(compgen -f -- "${cur_word}" ) )
    fi

    return 0
}