在-bash终端中找不到可执行文件命令

时间:2015-12-09 17:13:15

标签: node.js macos bash npm homebrew

使用Mac Os X Yosemite正在尝试生成一些脚手架,这就是bash终端中的内容

-bash:some_command:not found

在尝试生成或使用某些可执行命令时,我的大多数命令(例如run,serve等)都会发生这种情况。一般别名和mv,ls,rm等命令工作正常

我检查了我的$ PATH,看起来是正确的:

$ / bin / echo $ PATH /Users/user_name/.rbenv/shims:/usr/local/opt/coreutils/libexec/gnubin:/usr/local/heroku/bin:/usr/local/bin:/usr/local/sbin:/usr/local /share/npm/bin:/Users/user_name/.rbenv/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/ X11 / bin中:在/ usr /本地/ GIT中/ bin中

我检查确定npm,node,yomen,grunt等显示与-v一起安装并显示更新和安装。

我已经检查了我的〜.bash_profile和别名,但一切似乎都很好。

我能做的最好的事情是它可能与npm和/或Node以及Homebrew有关。所以我已经卸载,重新安装和研究任何类似的问题,但似乎没有任何工作。希望有人可以指出我在正确的方向,因为我在迷路。而且我在环境设置方面并不是最好的。所以可能不会看到那些盯着我的脸。提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您尚未安装,请务必先安装您尝试使用的任何CLI工具。例如:

npm install -g yo

该命令将yeoman安装到全局npm模块目录中。该目录也应该在您的$PATH中。要查找npm使用的目录,请键入以下内容:

npm config get prefix

这将显示npm正在安装全局模块的目录。在该目录中,应该有一个bin/目录,其中包含您安装的全局模块附带的任何CLI工具的符号链接。那个bin/目录应该在你的$PATH变量中,以便bash在那里找到命令行脚本。

我使用NVM来管理我的节点安装,因此当我运行npm config get prefix时,我的目录是:/Users/chev/.nvm/versions/node/v5.0.0。但这不是标准目录。如果您使用默认安装程序安装了节点,那么您的节点将会有所不同。当我echo $PATH我的时候看起来像这样:/Users/chev/.nvm/versions/node/v5.0.0/bin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin。路径中的目录由冒号(:)分隔。

OSX上的节点的一个常见问题是需要使用sudo和npm命令,因为默认的全局npm模块目录中存在权限问题。如果您遇到类似问题,我建议您也开始使用NVM之类的内容。 NVM允许您并排安装多个节点版本,但即使您不需要该功能,它仍然有用,因为它配置节点& npm,以便所有内容都在~/.nvm/的主目录之外运行,并避免权限问题。不再是sudo