npm run 不提供脚本作为建议

sha*_*shi 4 ubuntu node.js npm ubuntu-14.04 ubuntu-16.04

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

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

 npm run sta
Run Code Online (Sandbox Code Playgroud)

我在终端上没有收到任何建议/自动完成。在上面的例子中,我希望它能够自动完成

npm run start
Run Code Online (Sandbox Code Playgroud)

我在 package.json 中定义了许多脚本,但在按下选项卡时,这些脚本都不会显示为建议或自动完成。例如,在我定义的脚本中,pack-linux-x64, pack-darwin-x64等等,但是在输入时

npm run pack
Run Code Online (Sandbox Code Playgroud)

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

npm run package.json 
Run Code Online (Sandbox Code Playgroud)

正如我按 Tab 时的建议。

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

如果我自己输入命令,例如,npm run pack-linux-x64它运行时不会出现任何问题。

我怎样才能解决这个问题?

ari*_*ing 6

npm-completion - npm 的 Tab 补全

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

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

       npm completion >> ~/.bashrc
       npm completion >> ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

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

当在环境中定义 COMP_CWORD、COMP_LINE 和 COMP_POINT 时,npm 补全将以“管道模式”运行,并根据参数输出补全。