全局节点包出现“未找到命令”

全局节点包出现“未找到命令”

我已经通过执行 全局安装了 fkill npm i -g fkill。执行 时我可以看到它已安装npm list。运行 时,它仅显示 fkill 已全局安装npm list -g --depth=0。但是,当我运行时,fkill我收到“未找到命令”信息。

接下来我运行“npm get prefix”并得到“/home/alex/.node_modules”。这是我的 PATH:

/home/alex/.node_modules/bin:/home/alex/.npm-global/bin:/home/alex/.node_modules/bin:/home/alex/.node_modules/lib/node_modules:/home/alex/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/opt/cuda/bin:/var/lib/flatpak/exports/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/var/lib/snapd/snap/bin

这一切都始于我尝试使用 pacman 运行系统更新并遇到节点冲突之后,因此我卸载了节点并运行了更新,然后重新安装了节点。

有任何想法吗?

这是在 Manjaro 上。

答案1

你需要得到全球的npm 前缀在你的 PATH 变量中,这似乎不是你的情况,要了解你的系统 npm 全局前缀路径是什么,请使用“ npm get prefix -g”命令。

npm get prefix”命令只会打印本地前缀,正如 npm 文档所述 [1]。对于你的情况,我猜 npm 全局前缀将是这样的: /home/alex/.npm-global/bin

因此,解决问题最简单的方法是将“npm get prefix -g”返回的全局 npm 路径添加到 PATH,如果我猜测它的值是正确的,那么只需执行以下操作:

export PATH=$PATH:/home/alex/.npm-global/bin

还要编辑~/.bashrc file或依赖 shell 脚本,其中 npm 路径设置为它们的值,并将该全局路径添加到 $PATH 环境变量。

如果这没有帮助,您可以fkill通过运行以下命令检查已安装命令的可用性:

which fkill

或者运行 ls -l /home/alex/.npm-global/bin

或直接在那里搜索: find /home/alex/.npm* -name fkill

[1]https://docs.npmjs.com/cli/prefix.html

答案2

帖子 全局节点模块安装不正确。未找到命令 包含对某些人有用的几种解决方案。

回答 发帖人成功了,尽管他首先必须重新安装 Manjaro。这个答案总结了这篇文章 解决全局安装软件包时出现的 EACCES 权限错误,我引用一下:

我的 npm 也找不到全局包。我按照 Brad Parks 的建议做了:npm config set prefix /usr/local然后我得到了一个 EACCES 权限错误(请勿使用sudo npm install -g <package>),并通过官方 npm 文档修复了它: https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

  1. 在命令行上,在您的主目录中,创建一个用于全局安装的目录:mkdir ~/.npm-global
  2. 配置 npm 以使用新的目录路径:npm config set prefix '~/.npm-global'
  3. 在您喜欢的文本编辑器中,打开或创建一个 ~/.profile 文件并添加以下行:export PATH=~/.npm-global/bin:$PATH
  4. 在命令行上,更新系统变量:source ~/.profile
  5. 然后全局安装一个包并测试它!例如:``` npm install -g awsmobile-cli awsmobile configure

相关内容