我已经通过执行全局安装了 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
后全局 节点模块安装不正确。未找到命令 包含几个对某些人有用的解决方案。
一个 答案 对发帖者有效,尽管他首先必须再次重新安装 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 -全局包
- 在命令行上的主目录中,创建一个用于全局安装的目录:
mkdir ~/.npm-global- 配置 npm 以使用新的目录路径:
npm config set prefix '~/.npm-global'- 在您喜欢的文本编辑器中,打开或创建 ~/.profile 文件并添加以下行:
export PATH=~/.npm-global/bin:$PATH- 在命令行上,更新系统变量:
source ~/.profile- 然后全局安装一个包并测试它!例如:``` npm install -g awsmobile-cli awsmobile configure