关于 Nodejs npm 命令在 Linux 终端的自动补全
关于 Nodejs npm 命令在 Linux 终端的自动补全
以以前都没注意这个问题, 但像 Git 一样子命令一大堆是应该有补全才对
在网上大概搜索了一下, 没有很清晰的说明, 不过提到有个补全的文件
http://manpages.ubuntu.com/manpages/oneiric/man1/npm-completion.1.html
http://blog.izs.me/post/1675072029/10-cool-things-you-probably-didnt-realize-npm-could-do
而且这个文件在 Node 的源码里有, 就一个 Bash 脚本
https://github.com/isaacs/npm/blob/master/lib/utils/completion.sh
同时也可以用 npm completion > ~/.bashrc
来完成…
我执行命令的时候… 这个命令少产生了一个换行, 结果导致终端里报错了…
干脆导入另外一个文件用 source
命令引入到 .bashrc
配置了
发现按下 tab 进行补全速度有点慢… 而且在 npm search
以后再 tab 会卡住
觉得命令行用着有不流畅的地方, 不知道有办法好好调整不…?
关于 Nodejs npm 命令在 Linux 终端的自动补全
在使用 Node.js 和 npm 时,自动补全功能可以极大地提高开发效率。虽然 Git 等工具已经提供了很好的自动补全体验,但在 Node.js 和 npm 方面,自动补全的功能相对较少被提及。不过,通过一些简单的配置,我们可以在 Linux 终端中为 npm 命令实现自动补全。
如何启用 npm 命令的自动补全
首先,我们需要找到 npm 提供的自动补全脚本。该脚本位于 npm 的源码中,具体路径如下:
https://github.com/isaacs/npm/blob/master/lib/utils/completion.sh
你可以直接从 GitHub 下载这个脚本并将其添加到你的 shell 配置文件中(如 .bashrc
或 .zshrc
)。
正确配置自动补全
在 Linux 终端中,可以通过以下步骤来正确配置 npm 的自动补全:
-
下载并安装自动补全脚本:
你可以将自动补全脚本保存到一个临时位置,然后将其内容添加到你的 shell 配置文件中。
curl -o ~/npm_completion.sh https://raw.githubusercontent.com/isaacs/npm/master/lib/utils/completion.sh
-
将脚本添加到
.bashrc
或.zshrc
:编辑你的 shell 配置文件(例如
.bashrc
或.zshrc
),并添加以下内容:source ~/npm_completion.sh
-
重新加载 shell 配置文件:
执行以下命令以重新加载配置文件:
source ~/.bashrc # 或者 source ~/.zshrc
注意事项
-
在执行
npm completion > ~/.bashrc
时,可能会遇到缺少换行符的问题。为了避免这种情况,建议直接使用source
命令来导入脚本。 -
如果你发现自动补全的速度较慢,或者在某些情况下卡住,可能是因为网络请求或脚本本身的性能问题。可以尝试优化网络环境或调整脚本中的超时设置。
通过以上步骤,你应该能够在 Linux 终端中成功启用 npm 命令的自动补全功能。这将大大提高你在使用 npm 时的效率和便捷性。
我用 npm completion >> ~/.bashrc 这个命令来添加的,添加成功了,没有报错。补全速度也还可以,稍微有点延迟。
要在 Linux 终端中启用 Node.js npm 命令的自动补全功能,可以使用 npm 自带的自动补全脚本。以下是具体步骤:
-
首先,从 npm 的 GitHub 仓库中获取自动补全脚本:
curl -L https://raw.githubusercontent.com/npm/cli/v8.19.2/lib/utils/completion.sh > ~/.npm-bash-completion
-
然后,在你的
.bashrc
文件中添加以下行来加载这个脚本:echo 'if [ -f ~/.npm-bash-completion ]; then . ~/.npm-bash-completion; fi' >> ~/.bashrc
-
最后,使配置生效:
source ~/.bashrc
现在,你应该能够在终端中使用 tab
键进行 npm 命令的自动补全了。
如果遇到性能问题或卡顿,可以考虑更新 npm 到最新版本,并确保你的 .bashrc
文件没有重复加载相同的脚本。