获取全局节点包的“命令未找到”

abo*_*ros 7 linux manjaro npm

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

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

/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
Run Code Online (Sandbox Code Playgroud)

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

有任何想法吗?

这是在 Manjaro 上。

小智 8

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

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

因此,解决问题的最简单的解决方案是添加全局 npm 路径,该路径由“npm get prefix -g”返回到 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


har*_*ymc 0

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

一个 答案 对发帖者有效,尽管他首先必须再次重新安装 Manjaro。这个答案总结了文章 “Resolving EACCESpermissionserrorswheninstallingpackageglobally”,我引用:

我的 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 -全局包

  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