在 Ubuntu 上,如果我安装如下模块:
npm install nodemon -g
我有nodemon
命令$path
在 Mac OSXnodemon
上,不在$path
...
有什么线索吗?
更新:什么都没有/usr/local/bin
,我也尝试了相同的结果npm install nodemon -g
尝试全局安装:
sudo npm install nodemon -g
如果这也不起作用,请添加/usr/local/bin
到您的$PATH
.
我在我的 Mac 上遇到了同样的问题。我能够通过全局安装(不需要 sudo)然后添加/usr/local/share/npm/bin
到我的路径来解决这个问题。很容易将其放入您的 bash 配置文件中,以便在启动时添加。首先,vim ~/.bash_profile,然后:
export PATH=${PATH}:/usr/local/share/npm/bin
然后一切都按预期工作。
顺便说一句,当我回显 $PATH 时,/usr/local/bin 就在那里,所以 npm 在 Mac 上的工作方式肯定是个问题(也就是说,Mac 的全局安装位置与 Linux 不同)。
如果您使用的是fish shell,并通过自制软件安装了节点,请将其添加到~/.config/fish/config.fish
set PATH /usr/local/Cellar/node/6.6.0/bin/ $PATH
安装后您是否更新了终端路径?尝试关闭并重新打开您的终端。您使用的是 nvm(节点版本管理器)吗?如果是这样,二进制文件将类似于
Users/maxl/.nvm/v0.10.4/bin
什么是输出
echo $PATH
我被困了一段时间。然后我发现我正在从事的项目有自己的 RVM gemset。我试图安装的节点模块是npm install -g grunt-contrib-compass
.
结果是,当我打开一个新的终端窗口并运行时,which compass
我会看到路径,太棒了!但是在 cd 到我的项目目录之后,路径就会消失???事实证明,NPM 会将 gem 安装到 RVM 的(默认)gemset 中!我试图在没有 -g 标志的情况下重新安装,但没有运气。
我的解决方案很快rvm --force gemset delete appname
,只是使用了项目的默认设置。可能并不理想,但它确实有效。希望这个提示对其他人有所帮助。
它或可执行文件的二进制或符号链接可能在路径中/Users/[username]/private/node_modules/.bin
例如:
ls -l /Users/[username]/private/node_modules/.bin/json-server lrwxr-xr-x 1 [username] group 29 Oct 9 14:29 /Users/[username]/private/node_modules/.bin/json-server -> ../json-server/lib/cli/bin.js
将行添加PATH="$PATH:/Users/[username]]/private/node_modules/.bin/"
到~/.bash_profile
文件并运行source /Users/[username]]/.bash_profile
应该会导致您在 Ubuntu 中遇到的相同行为
最后对我有用的是使用nvm,然后做:
nvm install stable
nvm use stable
nvm alias default stable
npm config get prefix
我在运行并看到它之后意识到它是不正确的。