npm 运行 不提供脚本作为建议

npm run not giving scripts as suggestion

由于一些问题,我不得不从头开始设置我的开发机器,在这样做的过程中,我还从 Ubuntu 14.04 升级到 16.04。

我安装了最新的节点和 npm,但我观察到一个奇怪的行为。当我在输入命令

后按 Tab 键时
 npm run sta

我在终端上没有收到任何 suggestions/autocomplete。在上面的示例中,我希望它自动完成

npm run start

我在 package.json 中定义了很多脚本,但其中 none 显示为建议或自动完成,按 Tab 键。例如。在我定义的脚本中,pack-linux-x64, pack-darwin-x64 等,但在输入

npm run pack

并按 Tab 键,我没有从我的 package.json 脚本中定义的内容中得到建议。奇怪的是,我得到

npm run package.json 

作为我按 Tab 键时的建议。

这当然不是我以前系统中的行为。

如果我自己输入命令,例如npm run pack-linux-x64 然后它运行没有任何问题。

我该如何解决这个问题?

npm-completion - Tab Completion for npm

在所有 npm 命令中启用制表符补全。

上面的概要将完成加载到您当前的 shell。将它添加到您的 ~/.bashrc 或 ~/.zshrc 将使补全随处可用:

       npm completion >> ~/.bashrc
       npm completion >> ~/.zshrc

当然,您也可以将 npm 完成的输出通过管道传输到一个文件,例如 /usr/local/etc/bash_completion。d/npm 如果您有一个可以为您读取该文件的系统。

当环境中定义了COMP_CWORD、COMP_LINE、COMP_POINT时,npm补全作用于"plumbing mode",根据参数输出补全。